openModeller
Version 1.4.0
|
00001 00031 #include <TestHarness.h> 00032 #include <rules_logit.hh> 00033 #include <test_rules_defs.hh> 00034 00035 typedef ExtendedDummyRule<LogitRule> ExtLogitRule; 00036 00037 Scalar genes1[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00038 Scalar genes2[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00039 00040 00041 TEST( LogitRule_similar1, LogitRule ) 00042 { 00043 ExtLogitRule * rule1 = new ExtLogitRule; 00044 ExtLogitRule * rule2 = new ExtLogitRule; 00045 rule1->setGenes(genes1, 4); 00046 rule2->setGenes(genes2, 4); 00047 00048 LONGS_EQUAL(true, rule1->similar(rule2)); 00049 00050 delete rule1; 00051 delete rule2; 00052 } 00053 00054 TEST( LogitRule_similar1b, LogitRule ) 00055 { 00056 ExtLogitRule * rule1 = new ExtLogitRule; 00057 ExtLogitRule * rule2 = new ExtLogitRule; 00058 rule1->setGenes(genes1, 4); 00059 rule2->setGenes(genes2, 4); 00060 00061 LONGS_EQUAL(true, rule1->similar(rule2)); 00062 00063 delete rule1; 00064 delete rule2; 00065 } 00066 00067 Scalar genes3[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00068 Scalar genes4[8] = {-0.8, -0.4, -0.3, +0.8, +0.7, +0.8, -0.8, +0.8}; 00069 00070 TEST( LogitRule_similar2, LogitRule ) 00071 { 00072 ExtLogitRule * rule1 = new ExtLogitRule; 00073 ExtLogitRule * rule2 = new ExtLogitRule; 00074 rule1->setGenes(genes3, 4); 00075 rule2->setGenes(genes4, 4); 00076 00077 LONGS_EQUAL(true, rule1->similar(rule2)); 00078 00079 delete rule1; 00080 delete rule2; 00081 } 00082 00083 Scalar genes5[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00084 Scalar genes6[8] = {-0.8, -0.4, -0.3, +0.8, +0.7, -0.4, +0.3, +0.8}; 00085 00086 TEST( LogitRule_similar3, LogitRule ) 00087 { 00088 ExtLogitRule * rule1 = new ExtLogitRule; 00089 ExtLogitRule * rule2 = new ExtLogitRule; 00090 rule1->setGenes(genes5, 4); 00091 rule2->setGenes(genes6, 4); 00092 00093 LONGS_EQUAL(true, rule1->similar(rule2)); 00094 00095 delete rule1; 00096 delete rule2; 00097 } 00098 00099 Scalar genes7[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00100 Scalar genes8[8] = {+0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8}; 00101 00102 TEST( LogitRule_similar4, LogitRule ) 00103 { 00104 ExtLogitRule * rule1 = new ExtLogitRule; 00105 ExtLogitRule * rule2 = new ExtLogitRule; 00106 rule1->setGenes(genes7, 4); 00107 rule2->setGenes(genes8, 4); 00108 00109 LONGS_EQUAL(true, rule1->similar(rule2)); 00110 00111 delete rule1; 00112 delete rule2; 00113 } 00114 00115 Scalar genes9[8] = {+0.02, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8}; 00116 Scalar genes10[8] = {-0.04, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8}; 00117 00118 TEST( LogitRule_similar5, LogitRule ) 00119 { 00120 ExtLogitRule * rule1 = new ExtLogitRule; 00121 ExtLogitRule * rule2 = new ExtLogitRule; 00122 rule1->setGenes(genes9, 4); 00123 rule2->setGenes(genes10, 4); 00124 00125 LONGS_EQUAL(true, rule1->similar(rule2)); 00126 00127 delete rule1; 00128 delete rule2; 00129 } 00130 00131 Scalar genes11[8] = {-0.01, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00132 Scalar genes12[8] = {-0.50, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00133 00134 TEST( LogitRule_similar6, LogitRule ) 00135 { 00136 ExtLogitRule * rule1 = new ExtLogitRule; 00137 ExtLogitRule * rule2 = new ExtLogitRule; 00138 rule1->setGenes(genes11, 4); 00139 rule2->setGenes(genes12, 4); 00140 00141 LONGS_EQUAL(false, rule1->similar(rule2)); 00142 00143 delete rule1; 00144 delete rule2; 00145 } 00146 00147 Scalar genes13[8] = {-0.01, +0.02, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00148 Scalar genes14[8] = {-0.50, +0.80, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00149 00150 TEST( LogitRule_similar7, LogitRule ) 00151 { 00152 ExtLogitRule * rule1 = new ExtLogitRule; 00153 ExtLogitRule * rule2 = new ExtLogitRule; 00154 rule1->setGenes(genes13, 4); 00155 rule2->setGenes(genes14, 4); 00156 00157 LONGS_EQUAL(false, rule1->similar(rule2)); 00158 00159 delete rule1; 00160 delete rule2; 00161 } 00162 00163 // Rule below applies to all points 00164 // TODO: come up with tests for other cases 00165 Scalar genes100[8] = {-1.0, +0.8, -1.0, +0.8, -1.0, +0.8, -1.0, +0.8}; 00166 Scalar vals91[8] = {+0.8, +0.8, +0.8, +0.8 }; 00167 Scalar vals92[8] = {+0.8, +0.8, +0.8, +0.8 }; 00168 Scalar vals93[8] = {+0.8, +0.8, +0.8, +0.8 }; 00169 00170 TEST( LogitRule_applies1, LogitRule ) 00171 { 00172 ExtLogitRule * rule = new ExtLogitRule; 00173 rule->setGenes(genes100, 4); 00174 Sample sample (4, vals91); 00175 LONGS_EQUAL(true, rule->applies(sample)); 00176 delete rule; 00177 } 00178 00179 TEST( LogitRule_applies2, LogitRule ) 00180 { 00181 ExtLogitRule * rule = new ExtLogitRule; 00182 rule->setGenes(genes100, 4); 00183 Sample sample (4, vals92); 00184 LONGS_EQUAL(true, rule->applies(sample)); 00185 delete rule; 00186 } 00187 00188 TEST( LogitRule_applies3, LogitRule ) 00189 { 00190 ExtLogitRule * rule = new ExtLogitRule; 00191 rule->setGenes(genes100, 4); 00192 Sample sample (4, vals93); 00193 LONGS_EQUAL(true, rule->applies(sample)); 00194 delete rule; 00195 } 00196