/* * SpearmanCrossCorrelation.java created on Aug 23, 2005 by jdgant01 * */ package org.apache.commons.math.stat.mining; import java.text.DecimalFormat; import junit.framework.TestCase; import org.apache.commons.math.linear.RealMatrix; import org.apache.commons.math.linear.RealMatrixImpl; public class SpearmanRankCrossCorrelationTest extends TestCase { private SpearmanRankCrossCorrelation srcc = null; private final double one = 1.0; private final double negativeOneTenth = -0.1; private final double negativeOne = -1.0; private final double delta = 0.0; public static void main(String[] args) {} public SpearmanRankCrossCorrelationTest(String arg0) { super(arg0); } protected void setUp() throws Exception { super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } public void testOne() { double [][] data = {{1.0, 1.0}, {2.0, 2.0}, {3.0, 3.0}, {4.0, 4.0}, {5.0, 5.0}}; RealMatrixImpl dataMatrix = new RealMatrixImpl(5,2); dataMatrix.setSubMatrix(data, 0, 0); srcc = new SpearmanRankCrossCorrelation(dataMatrix); RealMatrix correlationMatrix = srcc.getCorrelationMatrix(); double correlation1 = correlationMatrix.getEntry(0, 1); double correlation2 = correlationMatrix.getEntry(1, 0); assertEquals("Diagonal correlation values equality", correlation1, correlation2, delta); assertEquals("Correlation1 value check", correlation1, one, delta); assertEquals("Correlation2 value check", correlation2, one, delta); } public void testTwo() { double [][] data = {{2.0, 4.0}, {1.0, 4.0}, {3.0, 1.0}, {3.0, 2.0}, {5.0, 3.0}}; RealMatrixImpl dataMatrix = new RealMatrixImpl(5,2); dataMatrix.setSubMatrix(data, 0, 0); srcc = new SpearmanRankCrossCorrelation(dataMatrix); RealMatrix correlationMatrix = srcc.getCorrelationMatrix(); double correlation1 = correlationMatrix.getEntry(0, 1); double correlation2 = correlationMatrix.getEntry(1, 0); assertEquals("Diagonal correlation values equality", correlation1, correlation2, delta); DecimalFormat df = new DecimalFormat("#.#"); assertEquals("Correlation1 value check", new Double(df.format(correlation1)).doubleValue(), negativeOneTenth, delta); assertEquals("Correlation2 value check", new Double(df.format(correlation2)).doubleValue(), negativeOneTenth, delta); } public void testThree() { double [][] data = {{1.0, 5.0}, {2.0, 4.0}, {3.0, 3.0}, {4.0, 2.0}, {5.0, 1.0}}; RealMatrixImpl dataMatrix = new RealMatrixImpl(5,2); dataMatrix.setSubMatrix(data, 0, 0); srcc = new SpearmanRankCrossCorrelation(dataMatrix); RealMatrix correlationMatrix = srcc.getCorrelationMatrix(); double correlation1 = correlationMatrix.getEntry(0, 1); double correlation2 = correlationMatrix.getEntry(1, 0); assertEquals("Diagonal correlation values equality", correlation1, correlation2, delta); assertEquals("Correlation1 value check", correlation1, negativeOne, delta); assertEquals("Correlation2 value check", correlation2, negativeOne, delta); } public void testFour() { double [][] data = {{1.0, 5.0, 1.0}, {2.0, 4.0, 2.0}, {3.0, 3.0, 3.0}, {4.0, 2.0, 4.0}, {5.0, 1.0, 5.0}}; RealMatrixImpl dataMatrix = new RealMatrixImpl(5,3); dataMatrix.setSubMatrix(data, 0, 0); srcc = new SpearmanRankCrossCorrelation(dataMatrix); RealMatrix correlationMatrix = srcc.getCorrelationMatrix(); double correlation0_0 = correlationMatrix.getEntry(0, 1); double correlation0_1 = correlationMatrix.getEntry(0, 1); double correlation0_2 = correlationMatrix.getEntry(0, 2); double correlation1_0 = correlationMatrix.getEntry(1, 0); double correlation1_1 = correlationMatrix.getEntry(1, 1); double correlation1_2 = correlationMatrix.getEntry(1, 2); double correlation2_0 = correlationMatrix.getEntry(2, 0); double correlation2_1 = correlationMatrix.getEntry(2, 1); double correlation2_2 = correlationMatrix.getEntry(2, 2); //checking diagonal assertEquals("Diagonal correlation values equality", correlation0_0, correlation1_0, delta); assertEquals("Diagonal correlation values equality", correlation1_1, correlation2_2, delta); assertEquals("Correlation0_1 value check", correlation0_1, negativeOne, delta); assertEquals("Correlation0_2 value check", correlation0_2, one, delta); assertEquals("Correlation1_0 value check", correlation1_0, negativeOne, delta); assertEquals("Correlation1_2 value check", correlation1_2, negativeOne, delta); assertEquals("Correlation2_0 value check", correlation2_0, one, delta); assertEquals("Correlation2_1 value check", correlation2_1, negativeOne, delta); } }