diff options
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); - } - } -} |