package it.unito.geosummly.tools; import java.util.ArrayList; import junit.framework.TestCase; public class DiscoveryToolsTest extends TestCase { public void testGetmeanArray() { ArrayList<Double> expected = new ArrayList<Double>(); expected.add(2.0); expected.add(5.0); expected.add(8.0); ArrayList<ArrayList<Double>> matrix = new ArrayList<ArrayList<Double>>(); ArrayList<Double> record_1 = new ArrayList<Double>(); ArrayList<Double> record_2 = new ArrayList<Double>(); ArrayList<Double> record_3 = new ArrayList<Double>(); record_1.add(1.0); record_1.add(4.0); record_1.add(7.0); record_2.add(2.0); record_2.add(5.0); record_2.add(8.0); record_3.add(3.0); record_3.add(6.0); record_3.add(9.0); matrix.add(record_1); matrix.add(record_2); matrix.add(record_3); DiscoveryTools tools = new DiscoveryTools(); ArrayList<Double> actual = tools.getMeanArray(matrix); assertEquals(expected, actual); } public void testGetStdMatrix() { ArrayList<ArrayList<Double>> expected = new ArrayList<ArrayList<Double>>(); ArrayList<Double> std = new ArrayList<Double>(); std.add(0.816496580927726); std.add(0.816496580927726); std.add(0.816496580927726); expected.add(std); expected.add(std); expected.add(std); ArrayList<ArrayList<Double>> matrix = new ArrayList<ArrayList<Double>>(); ArrayList<Double> record_1 = new ArrayList<Double>(); ArrayList<Double> record_2 = new ArrayList<Double>(); ArrayList<Double> record_3 = new ArrayList<Double>(); record_1.add(1.0); record_1.add(4.0); record_1.add(7.0); record_2.add(2.0); record_2.add(5.0); record_2.add(8.0); record_3.add(3.0); record_3.add(6.0); record_3.add(9.0); matrix.add(record_1); matrix.add(record_2); matrix.add(record_3); DiscoveryTools tools = new DiscoveryTools(); ArrayList<ArrayList<Double>> actual = tools.getStdMatrix(matrix); assertEquals(expected, actual); } public void testGetMean() { double expected = 5.0; ArrayList<ArrayList<Double>> matrix = new ArrayList<ArrayList<Double>>(); ArrayList<Double> record_1 = new ArrayList<Double>(); ArrayList<Double> record_2 = new ArrayList<Double>(); ArrayList<Double> record_3 = new ArrayList<Double>(); record_1.add(1.0); record_1.add(4.0); record_1.add(7.0); record_2.add(2.0); record_2.add(5.0); record_2.add(8.0); record_3.add(3.0); record_3.add(6.0); record_3.add(9.0); matrix.add(record_1); matrix.add(record_2); matrix.add(record_3); DiscoveryTools tools = new DiscoveryTools(); double actual = tools.getMean(matrix, 1); assertEquals(expected, actual); } public void testGetMeanSecond() { double expected = 5.0; ArrayList<Double> record = new ArrayList<Double>(); record.add(2.0); record.add(5.0); record.add(8.0); DiscoveryTools tools = new DiscoveryTools(); double actual = tools.getMean(record); assertEquals(expected, actual); } public void testGetVariance() { double expected = 0.666666666666666; ArrayList<ArrayList<Double>> matrix = new ArrayList<ArrayList<Double>>(); ArrayList<Double> record_1 = new ArrayList<Double>(); ArrayList<Double> record_2 = new ArrayList<Double>(); ArrayList<Double> record_3 = new ArrayList<Double>(); record_1.add(1.0); record_1.add(4.0); record_1.add(7.0); record_2.add(2.0); record_2.add(5.0); record_2.add(8.0); record_3.add(3.0); record_3.add(6.0); record_3.add(9.0); matrix.add(record_1); matrix.add(record_2); matrix.add(record_3); DiscoveryTools tools = new DiscoveryTools(); double actual = tools.getVariance(matrix, 1, 5.0); assertEquals(expected, actual, 0.0000000001); } public void testGetVarianceSecond() { double expected = 0.666666666666666; ArrayList<Double> record = new ArrayList<Double>(); record.add(4.0); record.add(5.0); record.add(6.0); DiscoveryTools tools = new DiscoveryTools(); double actual = tools.getVariance(record, 5.0); assertEquals(expected, actual, 0.0000000001); } public void testgetStdDev() { double expected = 2.0; DiscoveryTools tools = new DiscoveryTools(); double actual = tools.getStdDev(4.0); assertEquals(expected, actual); } public void testGetSingleDensities() { ArrayList<Double> expected = new ArrayList<Double>(); expected.add(19.608); expected.add(29.216); expected.add(38.824); ArrayList<Double> mean = new ArrayList<Double>(); mean.add(20.0); mean.add(30.0); mean.add(40.0); ArrayList<Double> std = new ArrayList<Double>(); std.add(2.0); std.add(4.0); std.add(6.0); DiscoveryTools tools = new DiscoveryTools(); ArrayList<Double> actual = tools.getSingleDensities(mean, std, 100); for(int i=0; i<expected.size(); i++) { assertEquals(expected.get(i), actual.get(i), 0.0000001); } } public void testGetDeltadCombinations() { ArrayList<Double> expected = new ArrayList<Double>(); expected.add(9.804); expected.add(15.721431660090383); expected.add(39.63859385727412); ArrayList<ArrayList<Double>> matrix = new ArrayList<ArrayList<Double>>(); ArrayList<Double> record_1 = new ArrayList<Double>(); ArrayList<Double> record_2 = new ArrayList<Double>(); ArrayList<Double> record_3 = new ArrayList<Double>(); record_1.add(1.0); record_1.add(4.0); record_1.add(7.0); record_2.add(2.0); record_2.add(5.0); record_2.add(8.0); record_3.add(3.0); record_3.add(6.0); record_3.add(9.0); matrix.add(record_1); matrix.add(record_2); matrix.add(record_3); ArrayList<Double> mean = new ArrayList<Double>(); mean.add(2.0); mean.add(5.0); mean.add(8.0); int[] comb = {-1, -1}; DiscoveryTools tools = new DiscoveryTools(); ArrayList<Double> actual = tools.getDeltadCombinations(matrix, new ArrayList<Double>(), mean, comb, 0, 0, 100); for(int i=0; i<expected.size(); i++) { assertEquals(expected.get(i), actual.get(i), 0.000001); } } public void testChangeFeaturesLabel() { ArrayList<String> expected = new ArrayList<String>(); expected.add("label_A"); expected.add("label_B"); expected.add("label_C"); ArrayList<String> features = new ArrayList<String>(); features.add("feature(A)"); features.add("feature(B)"); features.add("feature(C)"); DiscoveryTools tools = new DiscoveryTools(); ArrayList<String> actual = tools.changeFeaturesLabel("feature", "label_", features); assertEquals(expected, actual); } public void testGetFeaturesLabel() { ArrayList<String> expected = new ArrayList<String>(); expected.add("density(A)"); expected.add("density(B)"); expected.add("density(C)"); ArrayList<String> features = new ArrayList<String>(); features.add("A"); features.add("B"); features.add("C"); DiscoveryTools tools = new DiscoveryTools(); ArrayList<String> actual = tools.getFeaturesLabel("density", features); assertEquals(expected, actual); } public void getFeaturesForCombinations() { ArrayList<String> expected = new ArrayList<String>(); expected.add("deltad(A AND B)"); expected.add("deltad(A AND C"); expected.add("deltad(B AND C)"); ArrayList<String> features = new ArrayList<String>(); features.add("A"); features.add("B"); features.add("C"); int[] comb = {-1, -1}; DiscoveryTools tools = new DiscoveryTools(); ArrayList<String> actual = tools.getFeaturesForCombinations (new ArrayList<String>(), features, comb, 0, 0); assertEquals(expected, actual); } }