openModeller  Version 1.5.0
test_rules_logit.cpp
Go to the documentation of this file.
1 
31 #include <TestHarness.h>
32 #include <rules_logit.hh>
33 #include <test_rules_defs.hh>
34 
36 
37 Scalar genes1[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8};
38 Scalar genes2[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8};
39 
40 
41 TEST( LogitRule_similar1, LogitRule )
42 {
43  ExtLogitRule * rule1 = new ExtLogitRule;
44  ExtLogitRule * rule2 = new ExtLogitRule;
45  rule1->setGenes(genes1, 4);
46  rule2->setGenes(genes2, 4);
47 
48  LONGS_EQUAL(true, rule1->similar(rule2));
49 
50  delete rule1;
51  delete rule2;
52 }
53 
54 TEST( LogitRule_similar1b, LogitRule )
55 {
56  ExtLogitRule * rule1 = new ExtLogitRule;
57  ExtLogitRule * rule2 = new ExtLogitRule;
58  rule1->setGenes(genes1, 4);
59  rule2->setGenes(genes2, 4);
60 
61  LONGS_EQUAL(true, rule1->similar(rule2));
62 
63  delete rule1;
64  delete rule2;
65 }
66 
67 Scalar genes3[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8};
68 Scalar genes4[8] = {-0.8, -0.4, -0.3, +0.8, +0.7, +0.8, -0.8, +0.8};
69 
70 TEST( LogitRule_similar2, LogitRule )
71 {
72  ExtLogitRule * rule1 = new ExtLogitRule;
73  ExtLogitRule * rule2 = new ExtLogitRule;
74  rule1->setGenes(genes3, 4);
75  rule2->setGenes(genes4, 4);
76 
77  LONGS_EQUAL(true, rule1->similar(rule2));
78 
79  delete rule1;
80  delete rule2;
81 }
82 
83 Scalar genes5[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8};
84 Scalar genes6[8] = {-0.8, -0.4, -0.3, +0.8, +0.7, -0.4, +0.3, +0.8};
85 
86 TEST( LogitRule_similar3, LogitRule )
87 {
88  ExtLogitRule * rule1 = new ExtLogitRule;
89  ExtLogitRule * rule2 = new ExtLogitRule;
90  rule1->setGenes(genes5, 4);
91  rule2->setGenes(genes6, 4);
92 
93  LONGS_EQUAL(true, rule1->similar(rule2));
94 
95  delete rule1;
96  delete rule2;
97 }
98 
99 Scalar genes7[8] = {-0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8};
100 Scalar genes8[8] = {+0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8};
101 
102 TEST( LogitRule_similar4, LogitRule )
103 {
104  ExtLogitRule * rule1 = new ExtLogitRule;
105  ExtLogitRule * rule2 = new ExtLogitRule;
106  rule1->setGenes(genes7, 4);
107  rule2->setGenes(genes8, 4);
108 
109  LONGS_EQUAL(true, rule1->similar(rule2));
110 
111  delete rule1;
112  delete rule2;
113 }
114 
115 Scalar genes9[8] = {+0.02, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8};
116 Scalar genes10[8] = {-0.04, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8};
117 
118 TEST( LogitRule_similar5, LogitRule )
119 {
120  ExtLogitRule * rule1 = new ExtLogitRule;
121  ExtLogitRule * rule2 = new ExtLogitRule;
122  rule1->setGenes(genes9, 4);
123  rule2->setGenes(genes10, 4);
124 
125  LONGS_EQUAL(true, rule1->similar(rule2));
126 
127  delete rule1;
128  delete rule2;
129 }
130 
131 Scalar genes11[8] = {-0.01, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8};
132 Scalar genes12[8] = {-0.50, +0.8, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8};
133 
134 TEST( LogitRule_similar6, LogitRule )
135 {
136  ExtLogitRule * rule1 = new ExtLogitRule;
137  ExtLogitRule * rule2 = new ExtLogitRule;
138  rule1->setGenes(genes11, 4);
139  rule2->setGenes(genes12, 4);
140 
141  LONGS_EQUAL(false, rule1->similar(rule2));
142 
143  delete rule1;
144  delete rule2;
145 }
146 
147 Scalar genes13[8] = {-0.01, +0.02, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8};
148 Scalar genes14[8] = {-0.50, +0.80, -0.8, +0.8, -0.8, +0.8, -0.8, +0.8};
149 
150 TEST( LogitRule_similar7, LogitRule )
151 {
152  ExtLogitRule * rule1 = new ExtLogitRule;
153  ExtLogitRule * rule2 = new ExtLogitRule;
154  rule1->setGenes(genes13, 4);
155  rule2->setGenes(genes14, 4);
156 
157  LONGS_EQUAL(false, rule1->similar(rule2));
158 
159  delete rule1;
160  delete rule2;
161 }
162 
163 // Rule below applies to all points
164 // TODO: come up with tests for other cases
165 Scalar genes100[8] = {-1.0, +0.8, -1.0, +0.8, -1.0, +0.8, -1.0, +0.8};
166 Scalar vals91[8] = {+0.8, +0.8, +0.8, +0.8 };
167 Scalar vals92[8] = {+0.8, +0.8, +0.8, +0.8 };
168 Scalar vals93[8] = {+0.8, +0.8, +0.8, +0.8 };
169 
170 TEST( LogitRule_applies1, LogitRule )
171 {
172  ExtLogitRule * rule = new ExtLogitRule;
173  rule->setGenes(genes100, 4);
174  Sample sample (4, vals91);
175  LONGS_EQUAL(true, rule->applies(sample));
176  delete rule;
177 }
178 
179 TEST( LogitRule_applies2, LogitRule )
180 {
181  ExtLogitRule * rule = new ExtLogitRule;
182  rule->setGenes(genes100, 4);
183  Sample sample (4, vals92);
184  LONGS_EQUAL(true, rule->applies(sample));
185  delete rule;
186 }
187 
188 TEST( LogitRule_applies3, LogitRule )
189 {
190  ExtLogitRule * rule = new ExtLogitRule;
191  rule->setGenes(genes100, 4);
192  Sample sample (4, vals93);
193  LONGS_EQUAL(true, rule->applies(sample));
194  delete rule;
195 }
196 
Scalar genes4[8]
Scalar genes5[8]
Scalar genes2[8]
double Scalar
Type of map values.
Definition: om_defs.hh:39
Scalar vals92[8]
Scalar genes12[8]
Scalar genes6[8]
Scalar genes11[8]
Scalar genes3[8]
TEST(LogitRule_similar1, LogitRule)
Scalar vals93[8]
Scalar genes8[8]
Scalar genes9[8]
void setGenes(Scalar *genes, int numGenes)
Scalar genes13[8]
ExtendedDummyRule< LogitRule > ExtLogitRule
Scalar genes1[8]
Scalar genes100[8]
Scalar vals91[8]
Scalar genes10[8]
Scalar genes7[8]
Scalar genes14[8]
Definition: Sample.hh:25