コード例 #1
0
    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)
コード例 #2
0
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
コード例 #3
0
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'
コード例 #4
0
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())