diff options
author | Erich Schubert <erich@debian.org> | 2014-10-31 03:43:51 +0100 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:40 +0000 |
commit | 596d8876dca5627dd76e8c23bf40a24cc305eeed (patch) | |
tree | d269ddb46561469f6b1fff67b19e0cd2b4608f5b /test/de/lmu/ifi/dbs/elki/math/TestSlidingVariance.java | |
parent | ee31d687b1a0e2f2f1e6e71375c7cc3b094919b8 (diff) | |
parent | 337087b668d3a54f3afee3a9adb597a32e9f7e94 (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.java | 68 |
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); - } - } -} |