@@ -397,6 +397,61 @@ def test_vizrank_nonprimitives(self):
397397 new = lambda * _1 , ** _2 : lambda data : np .arange (len (data ))):
398398 self .widget .vizrank .score_heuristic ()
399399
400+ def test_vizrank_enabled (self ):
401+ self .send_signal (self .widget .Inputs .data , self .data )
402+ self .assertTrue (self .widget .vizrank_button .isEnabled ())
403+ self .assertEqual (self .widget .vizrank_button .toolTip (), "" )
404+ self .assertTrue (self .widget .vizrank .button .isEnabled ())
405+ self .widget .vizrank .button .click ()
406+
407+ def test_vizrank_enabled_no_data (self ):
408+ self .send_signal (self .widget .Inputs .data , None )
409+ self .assertFalse (self .widget .vizrank_button .isEnabled ())
410+ self .assertEqual (self .widget .vizrank_button .toolTip (), "No data on input" )
411+
412+ def test_vizrank_enabled_sparse_data (self ):
413+ self .send_signal (self .widget .Inputs .data , self .data .to_sparse ())
414+ self .assertFalse (self .widget .vizrank_button .isEnabled ())
415+ self .assertEqual (self .widget .vizrank_button .toolTip (), "Data is sparse" )
416+
417+ def test_vizrank_enabled_constant_data (self ):
418+ domain = Domain ([ContinuousVariable ("c1" ),
419+ ContinuousVariable ("c2" ),
420+ ContinuousVariable ("c3" ),
421+ ContinuousVariable ("c4" )],
422+ DiscreteVariable ("cls" , values = ["a" , "b" ]))
423+ X = np .zeros ((10 , 4 ))
424+ table = Table (domain , X , np .random .randint (2 , size = 10 ))
425+ self .send_signal (self .widget .Inputs .data , table )
426+ self .assertEqual (self .widget .vizrank_button .toolTip (), "" )
427+ self .assertTrue (self .widget .vizrank_button .isEnabled ())
428+ self .assertTrue (self .widget .vizrank .button .isEnabled ())
429+ self .widget .vizrank .button .click ()
430+
431+ def test_vizrank_enabled_two_features (self ):
432+ self .send_signal (self .widget .Inputs .data , self .data [:, 2 :])
433+ self .assertFalse (self .widget .vizrank_button .isEnabled ())
434+ self .assertEqual (self .widget .vizrank_button .toolTip (),
435+ "Not enough features for ranking" )
436+
437+ def test_vizrank_enabled_no_color_var (self ):
438+ self .send_signal (self .widget .Inputs .data , self .data [:, :3 ])
439+ self .assertFalse (self .widget .vizrank_button .isEnabled ())
440+ self .assertEqual (self .widget .vizrank_button .toolTip (),
441+ "Color variable is not selected" )
442+
443+ def test_vizrank_enabled_color_var_nans (self ):
444+ domain = Domain ([ContinuousVariable ("c1" ),
445+ ContinuousVariable ("c2" ),
446+ ContinuousVariable ("c3" ),
447+ ContinuousVariable ("c4" )],
448+ DiscreteVariable ("cls" , values = ["a" , "b" ]))
449+ table = Table (domain , np .random .random ((10 , 4 )), np .full (10 , np .nan ))
450+ self .send_signal (self .widget .Inputs .data , table )
451+ self .assertFalse (self .widget .vizrank_button .isEnabled ())
452+ self .assertEqual (self .widget .vizrank_button .toolTip (),
453+ "Color variable has no values" )
454+
400455 def test_auto_send_selection (self ):
401456 """
402457 Scatter Plot automatically sends selection only when the checkbox Send automatically
0 commit comments