def test_fit_component(self, signal_range): m = self.model axis = self.axis g = self.g g1 = Gaussian() m.append(g1) cf = ComponentFit(m, g1, signal_range=signal_range) if signal_range == 'interactive': cf.ss_left_value, cf.ss_right_value = (4000, 6000) cf._fit_fired() np.testing.assert_allclose(g.function(axis), g1.function(axis), rtol=0.0, atol=10e-3)
def test_fit_component(): np.random.seed(0) s = hs.signals.Signal1D(np.random.normal(size=1000, loc=1)).get_histogram() s = hs.stack([s, s], axis=0) m = s.create_model() m.extend([hs.model.components1D.Gaussian(), hs.model.components1D.Gaussian()]) g1, g2 = m g1.centre.value = 0 g2.centre.value = 8 fc = ComponentFit(model=m, component=g1) fc.ss_left_value = -2 fc.ss_right_value = 4 fc.only_current = not fc.only_current wd = fc.gui(**KWARGS)["ipywidgets"]["wdict"] wd["fit_button"]._click_handlers(wd["fit_button"]) # Trigger it assert wd["only_current"].value == fc.only_current wd["only_current"].value = not fc.only_current assert wd["only_current"].value == fc.only_current assert g2.centre.value == 8 np.testing.assert_allclose(g1.centre.value, 0.804, rtol=1E-2) np.testing.assert_allclose(g1.sigma.value, 0.965, rtol=1E-2) assert wd["iterpath"].disabled == True fc.only_current = False assert wd["iterpath"].disabled == False wd["close_button"]._click_handlers(wd["close_button"]) # Trigger it
def test_fit_component(): np.random.seed(0) s = hs.signals.Signal1D(np.random.normal(size=1000, loc=1)).get_histogram() s = hs.stack([s, s]) m = s.create_model() m.extend([hs.model.components1D.Gaussian(), hs.model.components1D.Gaussian()]) g1, g2 = m g1.centre.value = 0 g2.centre.value = 8 fc = ComponentFit(model=m, component=g1) fc.only_current = True fc.gui(**KWARGS) fc.ss_left_value = -2 fc.ss_right_value = 4 fc.only_current = False fc.iterpath = 'serpentine' fc.iterpath = 'flyback'
def test_Component_fit_wrong_signal(): s = Signal2D(np.arange(2 * 3 * 4).reshape(2, 3, 4)) m = s.create_model() with pytest.raises(SignalDimensionError): ComponentFit(m, Gaussian())