openModeller
Version 1.4.0
|
00001 00031 #include <CppUnitLite/TestHarness.h> 00032 #include <rules_atomic.hh> 00033 #include <garp_sampler.hh> 00034 #include <test_rules_defs.hh> 00035 00036 EXTENDED_DUMMY_RULE( AtomicRule ); 00037 00038 00039 Scalar genes1[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8}; 00040 Scalar vals11[8] = {-0.5, -0.5, -0.5, -0.5 }; 00041 Scalar vals12[8] = {-0.0, -0.0, -0.0, -0.0 }; 00042 Scalar vals13[8] = {-0.8, -0.8, -0.8, -0.8 }; 00043 00044 TEST( AtomicRule_applies11 , AtomicRule ) 00045 { 00046 ExtAtomicRule * rule = new ExtAtomicRule; 00047 rule->setGenes(genes1, 4); 00048 LONGS_EQUAL(rule->applies(vals11), false); 00049 } 00050 00051 TEST( AtomicRule_applies12 , AtomicRule ) 00052 { 00053 ExtAtomicRule * rule = new ExtAtomicRule; 00054 rule->setGenes(genes1, 4); 00055 LONGS_EQUAL(rule->applies(vals12), false); 00056 } 00057 00058 TEST( AtomicRule_applies13 , AtomicRule ) 00059 { 00060 ExtAtomicRule * rule = new ExtAtomicRule; 00061 rule->setGenes(genes1, 4); 00062 LONGS_EQUAL(rule->applies(vals13), true); 00063 } 00064 00065 Scalar genes2[8] = {-1.0, +1.0, -1.0, +1.0, -1.0, +1.0, -1.0, +1.0}; 00066 Scalar vals21[8] = {-0.5, -0.5, -0.5, -0.5 }; 00067 Scalar vals22[8] = {-0.0, -0.0, -0.0, -0.0 }; 00068 Scalar vals23[8] = {-2.9, -1.0, -1.0, -1.0 }; 00069 00070 TEST( AtomicRule_applies21 , AtomicRule ) 00071 { 00072 ExtAtomicRule * rule = new ExtAtomicRule; 00073 rule->setGenes(genes2, 4); 00074 LONGS_EQUAL(rule->applies(vals21), true); 00075 } 00076 00077 TEST( AtomicRule_applies22 , AtomicRule ) 00078 { 00079 ExtAtomicRule * rule = new ExtAtomicRule; 00080 rule->setGenes(genes2, 4); 00081 LONGS_EQUAL(rule->applies(vals22), true); 00082 } 00083 00084 TEST( AtomicRule_applies23 , AtomicRule ) 00085 { 00086 ExtAtomicRule * rule = new ExtAtomicRule; 00087 rule->setGenes(genes2, 4); 00088 LONGS_EQUAL(rule->applies(vals23), true); 00089 } 00090 00091 00092 Scalar genes3[8] = {-1.0, +1.0, -0.1, +0.1, -1.0, +1.0, -1.0, +1.0}; 00093 Scalar vals31[8] = {-0.5, -0.5, -0.5, -0.5 }; 00094 Scalar vals32[8] = {-0.0, -0.0, -0.0, -0.0 }; 00095 Scalar vals33[8] = {-2.9, -0.1, -1.0, -1.0 }; 00096 00097 TEST( AtomicRule_applies31 , AtomicRule ) 00098 { 00099 ExtAtomicRule * rule = new ExtAtomicRule; 00100 rule->setGenes(genes3, 4); 00101 LONGS_EQUAL(rule->applies(vals31), false); 00102 } 00103 00104 TEST( AtomicRule_applies32 , AtomicRule ) 00105 { 00106 ExtAtomicRule * rule = new ExtAtomicRule; 00107 rule->setGenes(genes3, 4); 00108 LONGS_EQUAL(rule->applies(vals32), false); 00109 } 00110 00111 TEST( AtomicRule_applies33 , AtomicRule ) 00112 { 00113 ExtAtomicRule * rule = new ExtAtomicRule; 00114 rule->setGenes(genes3, 4); 00115 LONGS_EQUAL(rule->applies(vals33), true); 00116 } 00117 00118 00119 Scalar genes4[8] = {-0.8, +0.8, -1.0, +1.0, -0.8, +0.0, -0.0, +1.0}; 00120 Scalar vals41[8] = {-0.8, -0.5, -0.8, -0.5 }; 00121 Scalar vals42[8] = {-0.8, -0.0, -0.8, -0.0 }; 00122 Scalar vals43[8] = {-0.8, -9.0, -0.8, -0.0 }; 00123 00124 TEST( AtomicRule_applies41 , AtomicRule ) 00125 { 00126 ExtAtomicRule * rule = new ExtAtomicRule; 00127 rule->setGenes(genes4, 4); 00128 LONGS_EQUAL(rule->applies(vals41), false); 00129 } 00130 00131 TEST( AtomicRule_applies42 , AtomicRule ) 00132 { 00133 ExtAtomicRule * rule = new ExtAtomicRule; 00134 rule->setGenes(genes4, 4); 00135 LONGS_EQUAL(rule->applies(vals42), true); 00136 } 00137 00138 TEST( AtomicRule_applies43 , AtomicRule ) 00139 { 00140 ExtAtomicRule * rule = new ExtAtomicRule; 00141 rule->setGenes(genes4, 4); 00142 LONGS_EQUAL(rule->applies(vals43), true); 00143 } 00144 00145 00146 Scalar genes5[8] = {-0.5, -0.5, -0.5, -0.5}; 00147 Scalar vals51[8] = {-0.5, -0.5 }; 00148 00149 TEST( AtomicRule_applies51 , AtomicRule ) 00150 { 00151 ExtAtomicRule * rule = new ExtAtomicRule; 00152 rule->setGenes(genes5, 2); 00153 LONGS_EQUAL(rule->applies(vals51), true); 00154 } 00155