55import numpy as np
66
77from Orange .data import Table
8- from Orange .distance import MahalanobisDistance
98from Orange .widgets .unsupervised .owdistances import OWDistances , METRICS
109from Orange .widgets .tests .base import WidgetTest
1110
@@ -24,9 +23,7 @@ def test_distance_combo(self):
2423 """Check distances when the metric changes"""
2524 self .assertEqual (self .widget .metrics_combo .count (), len (METRICS ))
2625 self .send_signal (self .widget .Inputs .data , self .iris )
27- for i , metric in enumerate (METRICS ):
28- if isinstance (metric , MahalanobisDistance ):
29- metric = MahalanobisDistance (self .iris )
26+ for i , (_ , metric ) in enumerate (METRICS ):
3027 self .widget .metrics_combo .activated .emit (i )
3128 self .widget .metrics_combo .setCurrentIndex (i )
3229 self .send_signal (self .widget .Inputs .data , self .iris )
@@ -36,35 +33,14 @@ def test_distance_combo(self):
3633 def test_error_message (self ):
3734 """Check if error message appears and then disappears when
3835 data is removed from input"""
36+ self .widget .metric_idx = 2
3937 self .send_signal (self .widget .Inputs .data , self .iris )
4038 self .assertFalse (self .widget .Error .no_continuous_features .is_shown ())
4139 self .send_signal (self .widget .Inputs .data , self .titanic )
4240 self .assertTrue (self .widget .Error .no_continuous_features .is_shown ())
4341 self .send_signal (self .widget .Inputs .data , None )
4442 self .assertFalse (self .widget .Error .no_continuous_features .is_shown ())
4543
46- def test_mahalanobis_error (self ):
47- mah_index = [i for i , d in enumerate (METRICS )
48- if isinstance (d , MahalanobisDistance )][0 ]
49- self .widget .metric_idx = mah_index
50- self .widget .autocommit = True
51-
52- invalid = self .iris [:]
53- invalid .X = np .vstack ((invalid .X [0 ], invalid .X [0 ]))
54- invalid .Y = np .vstack ((invalid .Y [0 ], invalid .Y [0 ]))
55- datasets = [self .iris , None , invalid ]
56- bad = [False , False , True ]
57- out = [True , False , False ]
58-
59- for data1 , bad1 , out1 in zip (datasets , bad , out ):
60- for data2 , bad2 , out2 in zip (datasets , bad , out ):
61- self .send_signal (self .widget .Inputs .data , data1 )
62- self .assertEqual (self .widget .Error .mahalanobis_error .is_shown (), bad1 )
63- self .assertEqual (self .get_output (self .widget .Outputs .distances ) is not None , out1 )
64- self .send_signal (self .widget .Inputs .data , data2 )
65- self .assertEqual (self .widget .Error .mahalanobis_error .is_shown (), bad2 )
66- self .assertEqual (self .get_output (self .widget .Outputs .distances ) is not None , out2 )
67-
6844 def test_too_big_array (self ):
6945 """
7046 Users sees an error message when calculating too large arrays and Orange
0 commit comments