def test_selected_backend(self, mocked_backends: mock.Mock): b1, b2 = mock.Mock(), mock.Mock() b1.display_name = "B1" b2.display_name = "B2" mocked_backends.return_value = [b1, b2] widget = self.create_widget(OWSql) self.assertEqual(widget.backendcombo.currentText(), "B1") simulate.combobox_activate_index(widget.backendcombo, 1) self.assertEqual(widget.backendcombo.currentText(), "B2") settings = widget.settingsHandler.pack_data(widget) widget = self.create_widget(OWSql, stored_settings=settings) self.assertEqual(widget.backendcombo.currentText(), "B2") settings = widget.settingsHandler.pack_data(widget) settings["selected_backend"] = "B3" widget = self.create_widget(OWSql, stored_settings=settings) self.assertEqual(widget.backendcombo.currentText(), "B1") mocked_backends.return_value = [] settings = widget.settingsHandler.pack_data(widget) widget = self.create_widget(OWSql, stored_settings=settings) self.assertEqual(widget.backendcombo.currentText(), "")
def test_nans(self): """Widget does not crash with nans""" self.send_signal(self.widget.Inputs.data, self.heart_disease) self.assertIsNotNone(self.get_output(self.widget.Outputs.inliers)) simulate.combobox_activate_index(self.widget.method_combo, self.widget.Covariance) self.assertIsNotNone(self.get_output(self.widget.Outputs.inliers)) self.assertFalse(self.widget.Error.singular_cov.is_shown())
def test_datasets(self): self.widget.controls.show_strip_plot.setChecked(True) self.widget.controls.show_rug_plot.setChecked(True) for ds in datasets.datasets(): self.send_signal(self.widget.Inputs.data, ds) for i in range(3): cb = self.widget.controls.scale_index simulate.combobox_activate_index(cb, i)
def test_methods(self): self.send_signal(self.widget.Inputs.data, self.data) method_cb = self.widget.controls.method_index for i, (cls, _, _) in enumerate(LearnerItemModel.LEARNERS): if cls is None: continue simulate.combobox_activate_index(method_cb, i) self.widget.apply_button.button.click() self.assertIsInstance(self.widget.learner, cls)
def test_scoring_method_control(self): self._restore_annotation_functions() self.send_signal(self.widget.Inputs.genes, self.genes) self.send_signal(self.widget.Inputs.data, self.data) self.wait_until_stop_blocking(wait=TIMEOUT) output1 = self.get_output(self.widget.Outputs.annotated_data) cbox = self.widget.controls.scoring_method simulate.combobox_activate_index(cbox, 2) self.widget.run_button.click() self.wait_until_stop_blocking(wait=TIMEOUT) output2 = self.get_output(self.widget.Outputs.annotated_data) np.testing.assert_array_equal(output1.X, output2.X) np.testing.assert_array_equal(output1.Y, output2.Y) self._patch_annotation_functions()
def test_color_by_cluster(self): self._restore_annotation_functions() self.send_signal(self.widget.Inputs.genes, self.genes) self.send_signal(self.widget.Inputs.data, self.data) self.wait_until_stop_blocking(wait=TIMEOUT) self.assertTrue(self.widget.controls.attr_color.isEnabled()) simulate.combobox_activate_index(self.widget.controls.attr_color, 0) is_grey = [brush.color().name() == "#808080" for brush in self.widget.graph.scatterplot_item.data['brush']] self.assertTrue(all(is_grey)) self.widget.controls.color_by_cluster.click() self.assertFalse(self.widget.controls.attr_color.isEnabled()) is_not_grey = [brush.color().name() != "#808080" for brush in self.widget.graph.scatterplot_item.data['brush']] self.assertTrue(any(is_not_grey)) self._patch_annotation_functions()
def test_statistical_test_control(self): self._restore_annotation_functions() self.send_signal(self.widget.Inputs.genes, self.genes) self.send_signal(self.widget.Inputs.data, self.data) self.wait_until_finished(timeout=TIMEOUT) output1 = self.get_output(self.widget.Outputs.annotated_data) cbox = self.widget.controls.statistical_test simulate.combobox_activate_index(cbox, 1) self.widget.run_button.click() self.wait_until_finished(timeout=TIMEOUT) output2 = self.get_output(self.widget.Outputs.annotated_data) np.testing.assert_array_equal(output1.X, output2.X) np.testing.assert_array_equal(output1.Y, output2.Y) self.assertFalse((output1.metas == output2.metas).all()) self._patch_annotation_functions()
def test_xgb_params(self): simulate.combobox_activate_index(self.widget.controls.method_index, 1) editor = self.widget.editor controls = editor.controls reg_slider = controls.lambda_index self.parameters = [ ParameterMapping("n_estimators", controls.n_estimators, [500, 10]), ParameterMapping("learning_rate", controls.learning_rate), ParameterMapping("max_depth", controls.max_depth), ParameterMapping("reg_lambda", reg_slider, values=[editor.LAMBDAS[0], editor.LAMBDAS[-1]], getter=lambda: editor.LAMBDAS[reg_slider.value()], setter=lambda val: reg_slider.setValue( editor.LAMBDAS.index(val))), ] self.test_parameters()
def test_output_empirical_covariance(self): simulate.combobox_activate_index(self.widget.method_combo, self.widget.Covariance) self.send_signal(self.widget.Inputs.data, self.iris) inliers = self.get_output(self.widget.Outputs.inliers) outliers = self.get_output(self.widget.Outputs.outliers) data = self.get_output(self.widget.Outputs.data) self.assertEqual(len(inliers), 135) self.assertEqual(len(outliers), 15) self.assertEqual(len(data), 150) self.assertEqual(len(inliers.domain.attributes), 4) self.assertEqual(len(outliers.domain.attributes), 4) self.assertEqual(len(data.domain.attributes), 4) self.assertEqual(len(inliers.domain.class_vars), 1) self.assertEqual(len(outliers.domain.class_vars), 1) self.assertEqual(len(data.domain.class_vars), 1) self.assertEqual(len(inliers.domain.metas), 0) self.assertEqual(len(outliers.domain.metas), 0) self.assertEqual(len(data.domain.metas), 2) self.assertEqual([m.name for m in data.domain.metas], ["Outlier", "Mahalanobis"])
def test_axis_controls(self): self.send_signal(self.widget.Inputs.corpus, self.corpus) simulate.combobox_activate_index(self.widget.controls.attr_y, 0) self.assertTrue(self.widget.Warning.same_axis_features.is_shown()) self.send_signal(self.widget.Inputs.corpus, None) self.assertFalse(self.widget.Warning.same_axis_features.is_shown())