Exemple #1
0
    def test_case_1(self):
        datadir = '/'.join((self._this_dir, 'data'))
        ls = '@' + '/'.join((datadir, '3c273.lis'))
        datastack.load_pha(ls, use_errors=True)

        assert 2 == len(datastack.DATASTACK.datasets)
        assert 2 == len(ui._session._data)

        datastack.load_pha("myid", '/'.join((datadir, "3c273.pi")))

        assert 2 == len(datastack.DATASTACK.datasets)
        assert 3 == len(ui._session._data)

        datastack.load_pha('/'.join((datadir, "3c273.pi")))

        assert 3 == len(datastack.DATASTACK.datasets)
        assert 4 == len(ui._session._data)

        datastack.load_pha([], '/'.join((datadir, "3c273.pi")))

        assert 4 == len(datastack.DATASTACK.datasets)
        assert 5 == len(ui._session._data)

        ds = datastack.DataStack()

        datastack.load_pha(ds, ls)

        assert 4 == len(datastack.DATASTACK.datasets)
        assert 7 == len(ui._session._data)
        assert 2 == len(ds.datasets)

        datastack.load_pha(ds, '/'.join((datadir, "3c273.pi")))

        assert 4 == len(datastack.DATASTACK.datasets)
        assert 8 == len(ui._session._data)
        assert 3 == len(ds.datasets)

        dids = datastack.DATASTACK.get_stack_ids()
        assert dids == [1, 2, 3, 4]

        sids = set(ui._session._data.keys())
        assert sids == {1, 2, 3, 4, 5, 6, 7, "myid"}

        datastack.set_source([1, 2], "powlaw1d.pID")
        datastack.set_source([3, 4], "brokenpowerlaw.bpID")

        dsids = ds.get_stack_ids()
        assert dsids == [5, 6, 7]

        p1 = ui._session._model_components['p1']
        p2 = ui._session._model_components['p2']
        bp3 = ui._session._model_components['bp3']
        bp4 = ui._session._model_components['bp4']

        assert p1 is not None
        assert p2 is not None
        assert bp3 is not None
        assert bp4 is not None

        datastack.set_source(1, "polynom1d.poly1")
        datastack.set_source([2, 3, 4], "atten.attID")

        poly1 = ui._session._model_components['poly1']
        a2 = ui._session._model_components['att2']
        a3 = ui._session._model_components['att3']
        a4 = ui._session._model_components['att4']

        assert poly1 is not None
        assert a2 is not None
        assert a3 is not None
        assert a4 is not None

        datastack.clean()

        assert 0 == len(datastack.DATASTACK.datasets)
        assert 0 == len(ui._session._data)
        assert 3 == len(ds.datasets)
    def test_case_1(self):
        datadir = '/'.join((self._this_dir, 'data'))
        ls = '@'+'/'.join((datadir, '3c273.lis'))
        datastack.load_pha(ls, use_errors=True)

        assert 2 == len(datastack.DATASTACK.datasets)
        assert 2 == len(ui._session._data)

        datastack.load_pha("myid", '/'.join((datadir, "3c273.pi")))

        assert 2 == len(datastack.DATASTACK.datasets)
        assert 3 == len(ui._session._data)

        datastack.load_pha('/'.join((datadir, "3c273.pi")))

        assert 3 == len(datastack.DATASTACK.datasets)
        assert 4 == len(ui._session._data)

        datastack.load_pha([], '/'.join((datadir, "3c273.pi")))

        assert 4 == len(datastack.DATASTACK.datasets)
        assert 5 == len(ui._session._data)

        ds = datastack.DataStack()

        datastack.load_pha(ds, ls)

        assert 4 == len(datastack.DATASTACK.datasets)
        assert 7 == len(ui._session._data)
        assert 2 == len(ds.datasets)

        datastack.load_pha(ds, '/'.join((datadir, "3c273.pi")))

        assert 4 == len(datastack.DATASTACK.datasets)
        assert 8 == len(ui._session._data)
        assert 3 == len(ds.datasets)

        dids = datastack.DATASTACK.get_stack_ids()
        assert dids == [1,2,3,4]

        sids = ui._session._data.keys()
        assert sids == [1,2,3,4,5,6,7, "myid"]

        datastack.set_source([1,2], "powlaw1d.pID")
        datastack.set_source([3,4], "brokenpowerlaw.bpID")

        dsids = ds.get_stack_ids()
        assert dsids == [5,6,7]

        p1 = ui._session._model_components['p1']
        p2 = ui._session._model_components['p2']
        bp3 = ui._session._model_components['bp3']
        bp4 = ui._session._model_components['bp4']

        assert p1 is not None
        assert p2 is not None
        assert bp3 is not None
        assert bp4 is not None

        datastack.set_source(1, "polynom1d.poly1")
        datastack.set_source([2,3,4], "atten.attID")

        poly1 = ui._session._model_components['poly1']
        a2 = ui._session._model_components['att2']
        a3 = ui._session._model_components['att3']
        a4 = ui._session._model_components['att4']

        assert poly1 is not None
        assert a2 is not None
        assert a3 is not None
        assert a4 is not None

        datastack.clean()

        assert 0 == len(datastack.DATASTACK.datasets)
        assert 0 == len(ui._session._data)
        assert 3 == len(ds.datasets)
Exemple #3
0
    def test_case_4(self):
        x1 = np.arange(50) + 100
        y1 = 2 * (3 * x1**2 + x1)
        x2 = np.arange(50)
        y2 = 2 * (x2**2 + 3 * x2)
        x3 = np.arange(50) + 200
        y3 = 2 * (x3**2 + 3 * x3)

        ds = self.ds

        datastack.load_arrays(ds, [[x1, y1], [x2, y2], [x3, y3]])

        datastack.set_source(ds, 'const1d.const * polynom1d.poly__ID')

        poly1 = ui._session._get_model_component('poly1')
        poly2 = ui._session._get_model_component('poly2')
        poly3 = ui._session._get_model_component('poly3')
        const = ui._session._get_model_component('const')

        datastack.freeze(ds, 'poly')
        datastack.thaw(ds, 'poly.c0')
        datastack.thaw(ds, 'poly.c1')
        datastack.thaw(ds, 'poly.c2')
        datastack.thaw(ds, 'const')

        assert poly1.c0.frozen is False
        assert poly1.c1.frozen is False
        assert poly1.c2.frozen is False
        assert poly1.c3.frozen is True

        assert poly2.c0.frozen is False
        assert poly2.c1.frozen is False
        assert poly2.c2.frozen is False
        assert poly2.c3.frozen is True

        assert poly3.c0.frozen is False
        assert poly3.c1.frozen is False
        assert poly3.c2.frozen is False
        assert poly3.c3.frozen is True

        datastack.set_par(ds, 'poly.c1', 0.45)

        assert poly1.c1.val == 0.45
        assert poly2.c1.val == 0.45
        assert poly3.c1.val == 0.45

        datastack.set_par(ds[1], 'poly.c1', 0.1)

        assert poly1.c1.val == 0.1
        assert poly2.c1.val == 0.45
        assert poly3.c1.val == 0.45

        datastack.set_par(ds, 'const.c0', 2)

        assert const.c0.val == 2

        datastack.set_par(ds, 'const.integrate', False)
        datastack.freeze(ds, 'const.c0')

        vals = datastack.get_par(ds, 'poly.c1.val')
        assert ([0.1, 0.45, 0.45] == vals).all()

        # QUS: pars is not checked, so is this just
        # checking that get_par doesn't fail?
        pars = datastack.get_par(ds, 'const.c0')

        datastack.fit(ds)

        assert round(poly1.c1.val) == 1
        assert round(poly1.c2.val) == 3
        assert round(poly2.c1.val) == 3
        assert round(poly2.c2.val) == 1
        assert round(poly3.c1.val) == 3
        assert round(poly3.c2.val) == 1

        ds.clear_stack()

        x1 = np.arange(50) + 100
        y1 = 7 * (3 * x1**2 + x1)
        x2 = np.arange(50)
        y2 = 2 * (x2**2 + 3 * x2)
        x3 = np.arange(50) + 200
        y3 = 2 * (x3**2 + 3 * x3)

        datastack.load_arrays(ds, [[x1, y1], [x2, y2], [x3, y3]])

        datastack.set_template_id("foo")

        datastack.set_source(ds, 'const1d.constfoo * polynom1d.polyfoo')

        const1 = ui._session._get_model_component('const1')
        const2 = ui._session._get_model_component('const2')
        const3 = ui._session._get_model_component('const3')

        datastack.link(ds[2, 3], 'const.c0')

        datastack.set_par(ds[2], 'const.c0', 3)
        datastack.set_par(ds[1], 'const.c0', 7)

        datastack.freeze(ds[1], 'const.c0')

        assert const2.c0.frozen is False

        datastack.fit(ds)

        assert const2.c0.val == const3.c0.val
        assert const3.c0._link is const2.c0

        datastack.unlink(ds, "const.c0")

        assert const3.c0._link is not const2.c0
    def test_case_4(self):
        x1 = np.arange(50)+100
        y1 = 2*(3*x1**2 + x1)
        x2 = np.arange(50)
        y2 = 2*(x2**2 + 3*x2)
        x3 = np.arange(50)+200
        y3 = 2*(x3**2+3*x3)

        ds = self.ds

        datastack.load_arrays(ds, [[x1, y1], [x2, y2], [x3, y3]])

        datastack.set_source(ds, 'const1d.const * polynom1d.poly__ID')

        poly1 = ui._session._get_model_component('poly1')
        poly2 = ui._session._get_model_component('poly2')
        poly3 = ui._session._get_model_component('poly3')
        const = ui._session._get_model_component('const')

        datastack.freeze(ds, 'poly')
        datastack.thaw(ds, 'poly.c0')
        datastack.thaw(ds, 'poly.c1')
        datastack.thaw(ds, 'poly.c2')
        datastack.thaw(ds, 'const')

        assert poly1.c0.frozen is False
        assert poly1.c1.frozen is False
        assert poly1.c2.frozen is False
        assert poly1.c3.frozen is True

        assert poly2.c0.frozen is False
        assert poly2.c1.frozen is False
        assert poly2.c2.frozen is False
        assert poly2.c3.frozen is True

        assert poly3.c0.frozen is False
        assert poly3.c1.frozen is False
        assert poly3.c2.frozen is False
        assert poly3.c3.frozen is True

        datastack.set_par(ds, 'poly.c1', 0.45)

        assert poly1.c1.val == 0.45
        assert poly2.c1.val == 0.45
        assert poly3.c1.val == 0.45

        datastack.set_par(ds[1], 'poly.c1', 0.1)

        assert poly1.c1.val == 0.1
        assert poly2.c1.val == 0.45
        assert poly3.c1.val == 0.45

        datastack.set_par(ds, 'const.c0', 2)

        assert const.c0.val == 2

        datastack.set_par(ds, 'const.integrate', False)
        datastack.freeze(ds, 'const.c0')

        vals = datastack.get_par(ds, 'poly.c1.val')
        assert ([0.1, 0.45, 0.45] == vals).all()

        # QUS: pars is not checked, so is this just
        # checking that get_par doesn't fail?
        pars = datastack.get_par(ds, 'const.c0')

        datastack.fit(ds)

        assert round(poly1.c1.val) == 1
        assert round(poly1.c2.val) == 3
        assert round(poly2.c1.val) == 3
        assert round(poly2.c2.val) == 1
        assert round(poly3.c1.val) == 3
        assert round(poly3.c2.val) == 1

        ds.clear_stack()

        x1 = np.arange(50)+100
        y1 = 7*(3*x1**2 + x1)
        x2 = np.arange(50)
        y2 = 2*(x2**2 + 3*x2)
        x3 = np.arange(50)+200
        y3 = 2*(x3**2+3*x3)

        datastack.load_arrays(ds, [[x1, y1], [x2, y2], [x3, y3]])

        datastack.set_template_id("foo")

        datastack.set_source(ds, 'const1d.constfoo * polynom1d.polyfoo')

        const1 = ui._session._get_model_component('const1')
        const2 = ui._session._get_model_component('const2')
        const3 = ui._session._get_model_component('const3')

        datastack.link(ds[2,3], 'const.c0')

        datastack.set_par(ds[2], 'const.c0', 3)
        datastack.set_par(ds[1], 'const.c0', 7)

        datastack.freeze(ds[1], 'const.c0')

        assert const2.c0.frozen is False

        datastack.fit(ds)

        assert const2.c0.val == const3.c0.val
        assert const3.c0._link is const2.c0

        datastack.unlink(ds, "const.c0")

        assert const3.c0._link is not const2.c0