summaryrefslogtreecommitdiff
path: root/test/de/lmu/ifi/dbs/elki/math/TestSlidingVariance.java
diff options
context:
space:
mode:
authorErich Schubert <erich@debian.org>2014-10-31 03:43:51 +0100
committerAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:40 +0000
commit596d8876dca5627dd76e8c23bf40a24cc305eeed (patch)
treed269ddb46561469f6b1fff67b19e0cd2b4608f5b /test/de/lmu/ifi/dbs/elki/math/TestSlidingVariance.java
parentee31d687b1a0e2f2f1e6e71375c7cc3b094919b8 (diff)
parent337087b668d3a54f3afee3a9adb597a32e9f7e94 (diff)
Import Debian changes 0.6.5~20141030-1
elki (0.6.5~20141030-1) unstable; urgency=medium * New upstream beta release * Urgency medium: 0.6.0 suffers from a performance issue with duplicates. * Repackaged tarball from .jar to .tar.bz2 * Add dependency on libsvm3-java * Enable line numbers for debugging (ant debuglevel)
Diffstat (limited to 'test/de/lmu/ifi/dbs/elki/math/TestSlidingVariance.java')
-rw-r--r--test/de/lmu/ifi/dbs/elki/math/TestSlidingVariance.java68
1 files changed, 0 insertions, 68 deletions
diff --git a/test/de/lmu/ifi/dbs/elki/math/TestSlidingVariance.java b/test/de/lmu/ifi/dbs/elki/math/TestSlidingVariance.java
deleted file mode 100644
index 58824142..00000000
--- a/test/de/lmu/ifi/dbs/elki/math/TestSlidingVariance.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package de.lmu.ifi.dbs.elki.math;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.Random;
-
-import org.junit.Test;
-
-import de.lmu.ifi.dbs.elki.JUnit4Test;
-
-/**
- * Unit test {@link MeanVariance} with negative weights.
- *
- * @author Erich Schubert
- */
-public class TestSlidingVariance implements JUnit4Test {
- /**
- * Size of test data set.
- */
- private static final int SIZE = 100000;
-
- /**
- * Sliding window size.
- */
- private static final int WINDOWSIZE = 100;
-
- @Test
- public void testSlidingWindowVariance() {
- MeanVariance mv = new MeanVariance();
- MeanVariance mc = new MeanVariance();
-
- Random r = new Random(0);
- double[] data = new double[SIZE];
- for(int i = 0; i < data.length; i++) {
- data[i] = r.nextDouble();
- }
- // Arrays.sort(data);
-
- // Pre-roll:
- for(int i = 0; i < WINDOWSIZE; i++) {
- mv.put(data[i]);
- }
- // Compare to window approach
- for(int i = WINDOWSIZE; i < data.length; i++) {
- mv.put(data[i - WINDOWSIZE], -1.); // Remove
- mv.put(data[i]);
-
- mc.reset(); // Reset statistics
- for(int j = i + 1 - WINDOWSIZE; j <= i; j++) {
- mc.put(data[j]);
- }
- // Fully manual statistics, exact two-pass algorithm:
- double mean = 0.0;
- for(int j = i + 1 - WINDOWSIZE; j <= i; j++) {
- mean += data[j];
- }
- mean /= WINDOWSIZE;
- double var = 0.0;
- for(int j = i + 1 - WINDOWSIZE; j <= i; j++) {
- double v = data[j] - mean;
- var += v * v;
- }
- var /= (WINDOWSIZE - 1);
- assertEquals("Variance does not agree at i=" + i, mv.getSampleVariance(), mc.getSampleVariance(), 1e-14);
- assertEquals("Variance does not agree at i=" + i, mv.getSampleVariance(), var, 1e-14);
- }
- }
-}