openModeller  Version 1.4.0
test_rules_logit.cpp
Go to the documentation of this file.
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