def test_outputs(self):
     self.widget = self.create_widget(OWPeakFit)
     self.send_signal("Data", self.data)
     self.widget.add_preprocessor(PREPROCESSORS[0])
     wait_for_preview(self.widget)
     self.widget.unconditional_commit()
     self.wait_until_finished()
     fit_params = self.get_output(self.widget.Outputs.fit_params)
     fits = self.get_output(self.widget.Outputs.fits)
     residuals = self.get_output(self.widget.Outputs.residuals)
     data = self.get_output(self.widget.Outputs.annotated_data)
     # fit_params
     self.assertEqual(len(fit_params), len(self.data))
     np.testing.assert_array_equal(fit_params.Y, self.data.Y)
     np.testing.assert_array_equal(fit_params.metas, self.data.metas)
     # fits
     self.assertEqual(len(fits), len(self.data))
     self.assert_domain_equal(fits.domain, self.data.domain)
     np.testing.assert_array_equal(fits.Y, self.data.Y)
     np.testing.assert_array_equal(fits.metas, self.data.metas)
     # residuals
     self.assertEqual(len(residuals), len(self.data))
     self.assert_domain_equal(residuals.domain, self.data.domain)
     np.testing.assert_array_equal(residuals.X, fits.X - self.data.X)
     np.testing.assert_array_equal(residuals.Y, self.data.Y)
     np.testing.assert_array_equal(residuals.metas, self.data.metas)
     # annotated data
     self.assertEqual(len(data), len(self.data))
     np.testing.assert_array_equal(data.X, self.data.X)
     np.testing.assert_array_equal(data.Y, self.data.Y)
     join_metas = np.asarray(np.hstack((self.data.metas, fit_params.X)),
                             dtype=object)
     np.testing.assert_array_equal(data.metas, join_metas)
Example #2
0
 def test_transfer_highlight(self):
     data = SMALL_COLLAGEN
     self.send_signal("Data", data)
     wait_for_preview(self.widget)
     self.widget.curveplot.highlight(1)
     self.assertEqual(self.widget.curveplot_after.highlighted, 1)
     self.widget.curveplot.highlight(None)
     self.assertIsNone(self.widget.curveplot_after.highlighted)
Example #3
0
 def test_allint_indv(self):
     data = Orange.data.Table("peach_juice.dpt")
     for p in PREPROCESSORS:
         self.widget = self.create_widget(OWIntegrate)
         self.send_signal("Data", data)
         self.widget.add_preprocessor(p)
         wait_for_preview(self.widget)
         self.widget.unconditional_commit()
Example #4
0
 def test_allpreproc_indv(self):
     data = SMALLER_COLLAGEN
     for p in PREPROCESSORS:
         self.widget = self.create_widget(OWPreprocess)
         self.send_signal("Data", data)
         self.widget.add_preprocessor(p)
         self.widget.unconditional_commit()
         wait_for_preview(self.widget)
         self.wait_until_finished(timeout=10000)
Example #5
0
 def test_preview_sampled(self):
     data = SMALL_COLLAGEN
     assert len(data) > 3
     self.send_signal("Data", data)
     self.widget.add_preprocessor(pack_editor(RememberDataEditor))
     self.widget.preview_curves = 3
     self.widget.show_preview()
     wait_for_preview(self.widget)
     self.assertEqual(3, len(RememberData.data))
 def test_allpreproc_indv(self):
     data = Orange.data.Table("peach_juice.dpt")
     for p in PREPROCESSORS:
         self.widget = self.create_widget(OWPreprocess)
         self.send_signal("Data", data)
         self.widget.add_preprocessor(p)
         self.widget.unconditional_commit()
         wait_for_preview(self.widget)
         self.wait_until_finished(timeout=10000)
 def test_bug_iris_crash(self):
     # bug with override wavenumbers:
     # TypeError: Object of type 'float32' is not JSON serializable
     data = Orange.data.Table('iris')
     self.send_signal("Data", data)
     # fixing getx output type fixes the bug
     self.assertEqual(getx(data).dtype, np.float_)
     self.widget.add_preprocessor(pack_model_editor(GaussianModelEditor))
     self.widget.unconditional_commit()
     wait_for_preview(self.widget, 10000)
Example #8
0
    def test_exception_preview_after_data(self):
        self.editor.raise_exception = True
        self.editor.edited.emit()
        wait_for_preview(self.widget)
        self.assertIsNone(self.widget.curveplot_after.data)

        self.editor.raise_exception = False
        self.editor.edited.emit()
        wait_for_preview(self.widget)
        self.assertIsNotNone(self.widget.curveplot_after.data)
Example #9
0
 def test_simple_preview(self):
     data = Orange.data.Table("iris.tab")
     self.send_signal(OWIntegrate.Inputs.data, data)
     self.widget.add_preprocessor(pack_editor(IntegrateSimpleEditor))
     self.widget.show_preview()
     wait_for_preview(self.widget)
     self.assertEqual(0, len(self.widget.curveplot.markings))
     self.widget.flow_view.set_preview_n(0)
     self.widget.show_preview()
     wait_for_preview(self.widget)
     self.assertGreater(len(self.widget.curveplot.markings), 0)
Example #10
0
 def test_allpreproc_indv_ref_multi(self):
     """Test that preprocessors can handle references with multiple instances"""
     # len(data) must be > maximum preview size (10) to ensure test failure
     data = SMALL_COLLAGEN
     for p in PREPROCESSORS:
         self.widget = self.create_widget(OWPreprocess)
         self.send_signal("Data", data)
         self.send_signal("Reference", data)
         self.widget.add_preprocessor(p)
         self.widget.unconditional_commit()
         wait_for_preview(self.widget)
         self.wait_until_finished()
Example #11
0
 def test_out_of_range(self):
     data = Orange.data.Table("iris.tab")
     self.send_signal(OWIntegrate.Inputs.data, data)
     self.widget.add_preprocessor(pack_editor(IntegrateSimpleEditor))
     editor = self.widget.flow_view.widgets()[0]
     editor.set_value("Low limit", 0)
     editor.edited.emit()
     wait_for_preview(self.widget)
     self.assertFalse(editor.Warning.out_of_range.is_shown())
     editor.set_value("Low limit", -1)
     editor.edited.emit()
     wait_for_preview(self.widget)
     self.assertTrue(editor.Warning.out_of_range.is_shown())
Example #12
0
 def test_preview_keep_order(self):
     data = SMALL_COLLAGEN
     assert len(data) > 4
     self.send_signal("Data", data)
     self.widget.add_preprocessor(pack_editor(RememberDataEditor))
     self.widget.preview_curves = 3
     self.widget.show_preview()
     wait_for_preview(self.widget)
     ids_old = RememberData.data.ids
     self.widget.preview_curves = 4
     self.widget.show_preview()
     wait_for_preview(self.widget)
     ids_new = RememberData.data.ids
     self.assertEqual(4, len(ids_new))
     self.assertEqual(list(ids_old), list(ids_new[:len(ids_old)]))
Example #13
0
 def test_reference_not_processed(self):
     """Testing setting for compatibility wih older saved schemas"""
     data = SMALL_COLLAGEN
     self.widget.process_reference = False
     self.assertFalse(self.widget.Warning.reference_compat.is_shown())
     self.send_signal("Data", data)
     self.send_signal("Reference", data)
     self.widget.add_preprocessor(pack_editor(CutEditor))
     self.widget.add_preprocessor(pack_editor(RememberDataEditor))
     wait_for_preview(self.widget)
     self.assertIs(data, RememberData.reference)
     self.assertTrue(self.widget.Warning.reference_compat.is_shown())
     self.widget.unconditional_commit()
     self.wait_until_finished()
     self.assertIs(data, RememberData.reference)
     self.assertTrue(self.widget.Warning.reference_compat.is_shown())
Example #14
0
 def test_reference_preprocessed_preview(self):
     data = SMALL_COLLAGEN
     self.widget.preview_curves = 3
     self.send_signal("Data", data)
     self.send_signal("Reference", data)
     self.widget.add_preprocessor(pack_editor(CutEditor))
     self.widget.add_preprocessor(pack_editor(RememberDataEditor))
     wait_for_preview(self.widget)
     processed = getx(RememberData.reference)
     # cut by default cuts 10% of the data on both edges
     original = getx(data)
     # confirm that we are looking at preview data
     self.assertEqual(3, len(RememberData.data))
     removed = set(original) - set(processed)
     self.assertGreater(len(removed), 0)
     self.assertEqual(set(), set(processed) - set(original))
     self.assertFalse(self.widget.Warning.reference_compat.is_shown())
 def test_allint_indv(self):
     for p in PREPROCESSORS:
         with self.subTest(msg=f"Testing model {p.name}"):
             settings = None
             if p.viewclass == PolynomialModelEditor:
                 continue
             if p.viewclass == ExponentialGaussianModelEditor:
                 settings = {
                     'storedsettings': {
                         'name':
                         '',
                         'preprocessors':
                         [('orangecontrib.spectroscopy.widgets.owwidget.eg',
                           {
                               'center':
                               OrderedDict([('value', 1650.0)]),
                               'sigma':
                               OrderedDict([('value', 5.0), ('max', 20.0)]),
                               'gamma':
                               OrderedDict([('value', 1.0),
                                            ('vary', "fixed")]),
                           })]
                     }
                 }
             elif p.viewclass == PseudoVoigtModelEditor:
                 settings = {
                     'storedsettings': {
                         'name':
                         '',
                         'preprocessors':
                         [('orangecontrib.spectroscopy.widgets.owwidget.pv',
                           {
                               'center': OrderedDict([('value', 1650.0)]),
                               'fraction': OrderedDict([('vary', "fixed")]),
                           })]
                     }
                 }
             self.widget = self.create_widget(OWPeakFit,
                                              stored_settings=settings)
             self.send_signal("Data", self.data)
             if settings is None:
                 self.widget.add_preprocessor(p)
             wait_for_preview(self.widget, 10000)
             self.widget.onDeleteWidget()
Example #16
0
 def test_allint_indv_empty(self):
     data = Orange.data.Table("peach_juice.dpt")[:0]
     for p in PREPROCESSORS:
         self.widget = self.create_widget(OWIntegrate)
         self.send_signal("Data", data)
         self.widget.add_preprocessor(p)
         wait_for_preview(self.widget)
         self.widget.unconditional_commit()
     # no attributes
     data = Orange.data.Table("peach_juice.dpt")
     data = data.transform(
         Orange.data.Domain([],
                            class_vars=data.domain.class_vars,
                            metas=data.domain.metas))
     for p in PREPROCESSORS:
         self.widget = self.create_widget(OWIntegrate)
         self.send_signal("Data", data)
         self.widget.add_preprocessor(p)
         wait_for_preview(self.widget)
         self.widget.unconditional_commit()
Example #17
0
 def test_allpreproc_indv_empty(self):
     data = SMALLER_COLLAGEN
     for p in PREPROCESSORS:
         self.widget = self.create_widget(OWPreprocess)
         self.send_signal("Data", data[:0])
         self.widget.add_preprocessor(p)
         self.widget.unconditional_commit()
         wait_for_preview(self.widget)
         self.wait_until_finished(timeout=10000)
     # no attributes
     data = data.transform(
         Orange.data.Domain([],
                            class_vars=data.domain.class_vars,
                            metas=data.domain.metas))
     for p in PREPROCESSORS:
         self.widget = self.create_widget(OWPreprocess)
         self.send_signal("Data", data)
         self.widget.add_preprocessor(p)
         self.widget.unconditional_commit()
         wait_for_preview(self.widget)
         self.wait_until_finished(timeout=10000)
Example #18
0
 def wait_for_preview(self):
     wait_for_preview(self.widget)
 def wait_for_preview(self):
     wait_for_preview(self.widget, timeout=10000)