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