001 package calhoun.analysis.crf.test;
002
003 import calhoun.analysis.crf.Conrad;
004 import calhoun.util.AbstractTestCase;
005
006 // In this test want to use a 13tricycle model and train on
007 // real (but short) data, such as the ~10 genes in shortTrain.txt
008 // using a variety of cache processors, and make sure get identical
009 // answers (ie identical gradients or weights) in every case.
010
011 public class CacheProcessorTestRealShort extends AbstractTestCase {
012
013
014 public void testEquivalentResultsVariousCacheProcessors() throws Exception {
015
016 Conrad r = new Conrad("test/input/configFilesTricycle13/baselineTricycle13.xml");
017 r.train("test/input/tinyTrain.tricycle13.txt");
018
019 Conrad rs = new Conrad("test/input/configFilesTricycle13/baselineTricycle13_smartcached.xml");
020 rs.train("test/input/tinyTrain.tricycle13.txt");
021 assertArrayEquals(rs.getWeights(), r.getWeights(), 0.0001);
022
023 Conrad rsd = new Conrad("test/input/configFilesTricycle13/baselineTricycle13_smartcacheddense.xml");
024 rsd.train("test/input/tinyTrain.tricycle13.txt");
025 assertArrayEquals(rsd.getWeights(), r.getWeights(), 0.0001);
026
027 Conrad rss = new Conrad("test/input/configFilesTricycle13/baselineTricycle13_smartcachedsparse.xml");
028 rss.train("test/input/tinyTrain.tricycle13.txt");
029 assertArrayEquals(rss.getWeights(), r.getWeights(), 0.0001);
030
031 Conrad rc = new Conrad("test/input/configFilesTricycle13/baselineTricycle13_cached.xml");
032 rc.train("test/input/tinyTrain.tricycle13.txt");
033 assertArrayEquals(rc.getWeights(), r.getWeights(), 0.0001);
034 }
035
036
037 public void testCacheProcessorsWithInvalidation() throws Exception {
038
039 Conrad rs = new Conrad("test/input/configFilesTricycle13/constrainingTricycle13_smartcached.xml");
040 rs.train("test/input/tinyTrain.tricycle13.txt");
041
042 Conrad rsd = new Conrad("test/input/configFilesTricycle13/constrainingTricycle13_smartcacheddense.xml");
043 rsd.train("test/input/tinyTrain.tricycle13.txt");
044
045 Conrad rss = new Conrad("test/input/configFilesTricycle13/constrainingTricycle13_smartcachedsparse.xml");
046 rss.train("test/input/tinyTrain.tricycle13.txt");
047
048 Conrad r = new Conrad("test/input/configFilesTricycle13/constrainingTricycle13.xml");
049 r.train("test/input/tinyTrain.tricycle13.txt");
050
051 Conrad rc = new Conrad("test/input/configFilesTricycle13/constrainingTricycle13_cached.xml");
052 rc.train("test/input/tinyTrain.tricycle13.txt");
053
054 assertArrayEquals(rc.getWeights(), r.getWeights(), 0.0001);
055 assertArrayEquals(rs.getWeights(), r.getWeights(), 0.0001);
056 assertArrayEquals(rsd.getWeights(), r.getWeights(), 0.0001);
057 assertArrayEquals(rss.getWeights(), r.getWeights(), 0.0001);
058 }
059 }