diff options
Diffstat (limited to 'elki/src/test/java/de/lmu/ifi/dbs/elki/distance/distancefunction/correlation/SquaredUncenteredCorrelationDistanceFunctionTest.java')
-rw-r--r-- | elki/src/test/java/de/lmu/ifi/dbs/elki/distance/distancefunction/correlation/SquaredUncenteredCorrelationDistanceFunctionTest.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/distance/distancefunction/correlation/SquaredUncenteredCorrelationDistanceFunctionTest.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/distance/distancefunction/correlation/SquaredUncenteredCorrelationDistanceFunctionTest.java new file mode 100644 index 00000000..298616ed --- /dev/null +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/distance/distancefunction/correlation/SquaredUncenteredCorrelationDistanceFunctionTest.java @@ -0,0 +1,56 @@ +package de.lmu.ifi.dbs.elki.distance.distancefunction.correlation; + +/* + This file is part of ELKI: + Environment for Developing KDD-Applications Supported by Index-Structures + + Copyright (C) 2015 + Ludwig-Maximilians-Universität München + Lehr- und Forschungseinheit für Datenbanksysteme + ELKI Development Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import de.lmu.ifi.dbs.elki.JUnit4Test; +import de.lmu.ifi.dbs.elki.data.DoubleVector; + +/** + * Unit test for Squared Pearson correlation distance. + * + * @author Erich Schubert + * @since 0.4.0 + */ +public class SquaredUncenteredCorrelationDistanceFunctionTest implements JUnit4Test { + /** Inherited test data */ + final static DoubleVector[] TESTS = UncenteredCorrelationDistanceFunctionTest.TESTS; + + /** Note, these are not yet adjusted */ + final static double[][] SCORES = UncenteredCorrelationDistanceFunctionTest.SCORES; + + @Test + public void testSquaredUncenteredCorrelation() { + SquaredUncenteredCorrelationDistanceFunction f = SquaredUncenteredCorrelationDistanceFunction.STATIC; + for(int i = 0; i < TESTS.length; i++) { + for(int j = 0; j < TESTS.length; j++) { + final double dist = f.distance(TESTS[i], TESTS[j]); + final double r = 1. - SCORES[i][j]; + assertEquals("Distance does not agree: " + TESTS[i] + " <-> " + TESTS[j], 1. - r * r, dist, 1e-15); + } + } + } +} |