|
14 | 14 | from Orange.preprocess import Scale, Continuize |
15 | 15 | from Orange.tests import test_filename |
16 | 16 | from Orange.widgets.tests.base import WidgetTest |
| 17 | +from Orange.widgets.tests.utils import simulate |
17 | 18 | from Orange.widgets.visualize.ownomogram import ( |
18 | 19 | OWNomogram, DiscreteFeatureItem, ContinuousFeatureItem, ProbabilitiesDotItem, |
19 | 20 | MovableToolTip |
@@ -293,25 +294,52 @@ def test_dots_stop_flashing(self): |
293 | 294 | def test_reconstruct_domain(self): |
294 | 295 | data = Table("heart_disease") |
295 | 296 | cls = LogisticRegressionLearner()(data) |
296 | | - domain = OWNomogram.reconstruct_domain(cls.original_domain, cls.domain) |
| 297 | + domain = OWNomogram.reconstruct_domain(cls, cls.domain) |
297 | 298 | transformed_data = cls.original_data.transform(domain) |
298 | 299 | self.assertEqual(transformed_data.X.shape, data.X.shape) |
299 | 300 | self.assertFalse(np.isnan(transformed_data.X[0]).any()) |
300 | 301 |
|
301 | 302 | scaled_data = Scale()(data) |
302 | 303 | cls = LogisticRegressionLearner()(scaled_data) |
303 | | - domain = OWNomogram.reconstruct_domain(cls.original_domain, cls.domain) |
| 304 | + domain = OWNomogram.reconstruct_domain(cls, cls.domain) |
304 | 305 | transformed_data = cls.original_data.transform(domain) |
305 | 306 | self.assertEqual(transformed_data.X.shape, scaled_data.X.shape) |
306 | 307 | self.assertFalse(np.isnan(transformed_data.X[0]).any()) |
307 | 308 |
|
308 | 309 | disc_data = Continuize()(data) |
309 | 310 | cls = LogisticRegressionLearner()(disc_data) |
310 | | - domain = OWNomogram.reconstruct_domain(cls.original_domain, cls.domain) |
| 311 | + domain = OWNomogram.reconstruct_domain(cls, cls.domain) |
311 | 312 | transformed_data = cls.original_data.transform(domain) |
312 | 313 | self.assertEqual(transformed_data.X.shape, disc_data.X.shape) |
313 | 314 | self.assertFalse(np.isnan(transformed_data.X[0]).any()) |
314 | 315 |
|
| 316 | + def test_missing_class_value(self): |
| 317 | + iris = Table("iris") |
| 318 | + iris_set_ver = iris[:100] |
| 319 | + target_cb = self.widget.controls.target_class_index |
| 320 | + |
| 321 | + lr = LogisticRegressionLearner()(iris) |
| 322 | + self.send_signal(self.widget.Inputs.classifier, lr) |
| 323 | + simulate.combobox_activate_index(target_cb, 2) |
| 324 | + self.assertEqual(target_cb.currentIndex(), 2) |
| 325 | + self.assertEqual(target_cb.count(), 3) |
| 326 | + |
| 327 | + lr = LogisticRegressionLearner()(iris_set_ver) |
| 328 | + self.send_signal(self.widget.Inputs.classifier, lr) |
| 329 | + self.assertEqual(target_cb.currentIndex(), 0) |
| 330 | + self.assertEqual(target_cb.count(), 2) |
| 331 | + |
| 332 | + nb = NaiveBayesLearner()(iris) |
| 333 | + self.send_signal(self.widget.Inputs.classifier, nb) |
| 334 | + simulate.combobox_activate_index(target_cb, 2) |
| 335 | + self.assertEqual(target_cb.currentIndex(), 2) |
| 336 | + self.assertEqual(target_cb.count(), 3) |
| 337 | + |
| 338 | + nb = NaiveBayesLearner()(iris_set_ver) |
| 339 | + self.send_signal(self.widget.Inputs.classifier, nb) |
| 340 | + self.assertEqual(target_cb.currentIndex(), 2) |
| 341 | + self.assertEqual(target_cb.count(), 3) |
| 342 | + |
315 | 343 |
|
316 | 344 | if __name__ == "__main__": |
317 | 345 | unittest.main() |
0 commit comments