示例#1
0
    def test_add(self):
        ps1 = p2sat.ExamplePhaseSpace()
        ps2 = ps1 + ps1

        assert len(ps2) == 2 * len(ps1)

        i = len(ps1)

        assert np.allclose(ps1.data.raw.w, ps2.data.raw.w[:i])
        assert np.allclose(ps1.data.raw.x, ps2.data.raw.x[:i])
        assert np.allclose(ps1.data.raw.y, ps2.data.raw.y[:i])
        assert np.allclose(ps1.data.raw.z, ps2.data.raw.z[:i])
        assert np.allclose(ps1.data.raw.px, ps2.data.raw.px[:i])
        assert np.allclose(ps1.data.raw.py, ps2.data.raw.py[:i])
        assert np.allclose(ps1.data.raw.pz, ps2.data.raw.pz[:i])
        assert np.allclose(ps1.data.raw.t, ps2.data.raw.t[:i])

        assert np.allclose(ps1.data.raw.w, ps2.data.raw.w[i:])
        assert np.allclose(ps1.data.raw.x, ps2.data.raw.x[i:])
        assert np.allclose(ps1.data.raw.y, ps2.data.raw.y[i:])
        assert np.allclose(ps1.data.raw.z, ps2.data.raw.z[i:])
        assert np.allclose(ps1.data.raw.px, ps2.data.raw.px[i:])
        assert np.allclose(ps1.data.raw.py, ps2.data.raw.py[i:])
        assert np.allclose(ps1.data.raw.pz, ps2.data.raw.pz[i:])
        assert np.allclose(ps1.data.raw.t, ps2.data.raw.t[i:])
示例#2
0
    def test_round_axis(self):
        ps1 = p2sat.ExamplePhaseSpace()
        ps2 = ps1.copy()

        ps1.data.round_axis("x",decimals=2)

        assert np.allclose(ps1.data.raw.x, np.around(ps2.data.raw.x,decimals=2))
示例#3
0
    def test_rescale_axis(self):
        ps1 = p2sat.ExamplePhaseSpace()
        ps2 = ps1.copy()

        ps1.data.rescale_axis("w",100.)

        assert np.allclose(ps1.data.raw.w, 100 * ps2.data.raw.w)
示例#4
0
    def test_propagate(self):
        ps = p2sat.ExamplePhaseSpace()
        r = ps.data.raw

        ps.data.propagate(x=100)
        assert set(r.x) == {100}

        ps.data.propagate(t=100)
        assert set(r.t) == {100}
示例#5
0
    def test_get_axis(self):
        ps = p2sat.ExamplePhaseSpace()
        r = ps.data.raw

        w = ps.data.get_axis("w")
        ekin = ps.data.get_axis("ekin")

        assert np.allclose(w,r.w)
        assert np.allclose(ekin,r.ekin)
示例#6
0
    def test_update(self):
        ps = p2sat.ExamplePhaseSpace()

        data = [np.random.rand(100) for _ in range(8)]

        ps.data.update(*data)

        for ix,ax in enumerate(ps.data.get_ps()):
            assert np.allclose(ax,data[ix])
示例#7
0
    def test_rebin_axis(self):
        ps1 = p2sat.ExamplePhaseSpace()
        ps2 = ps1.copy()
        r1 = ps1.data.raw
        r2 = ps2.data.raw

        nbins = 10

        x = ps1.data.rebin_axis("x",nbins=nbins)

        assert len(set(x)) == nbins
        assert np.all(abs(x - r2.x) < (max(r2.x) - min(r2.x))/(nbins-1.))
        assert np.nan_to_num(sum(x)) != 0.
示例#8
0
    def test_get_ps(self):
        ps = p2sat.ExamplePhaseSpace()
        r = ps.data.raw
        data = ps.data.get_ps()
        w,ps = data[0], data[1:]

        assert np.allclose(w,r.w)
        assert np.allclose(ps[0],r.x)
        assert np.allclose(ps[1],r.y)
        assert np.allclose(ps[2],r.z)
        assert np.allclose(ps[3],r.px)
        assert np.allclose(ps[4],r.py)
        assert np.allclose(ps[5],r.pz)
        assert np.allclose(ps[6],r.t)
示例#9
0
    def test_copy(self):
        ps1 = p2sat.ExamplePhaseSpace()
        ps2 = ps1.copy()

        assert ps1 is not ps2

        assert np.allclose(ps1.data.raw.w, ps2.data.raw.w)
        assert np.allclose(ps1.data.raw.x, ps2.data.raw.x)
        assert np.allclose(ps1.data.raw.y, ps2.data.raw.y)
        assert np.allclose(ps1.data.raw.z, ps2.data.raw.z)
        assert np.allclose(ps1.data.raw.px, ps2.data.raw.px)
        assert np.allclose(ps1.data.raw.py, ps2.data.raw.py)
        assert np.allclose(ps1.data.raw.pz, ps2.data.raw.pz)
        assert np.allclose(ps1.data.raw.t, ps2.data.raw.t)
示例#10
0
    def test_transformate(self):
        ps1 = p2sat.ExamplePhaseSpace()
        ps2 = ps1.copy()

        r1 = ps1.data.raw
        r2 = ps2.data.raw

        ps2.data.transformate(R=(0,0,180))
        assert np.allclose(-r2.px,r1.px)
        assert np.allclose(-r2.py,r1.py)

        ps2.data.transformate(T=(-100,0,0),R=(0,0,-180),rotate_first=True)
        assert np.allclose(r2.px,r1.px)
        assert np.allclose(r2.py,r1.py)
        assert np.allclose(r2.x + 100,r1.x)
示例#11
0
    def test_filter_axis(self):
        ps = p2sat.ExamplePhaseSpace()
        r = ps.data.raw

        x = ps.data.filter_axis('x',select=dict(r=[None,None]))

        assert np.allclose(x,r.x)

        id = ps.data.filter_axis('id',select=dict(x=[0,None],r=[0,10],t=[100,300]))

        for i in id:
            assert r.x[i] > 0.
            assert r.r[i] > 0.
            assert r.r[i] < 10.
            assert r.t[i] > 100.
            assert r.t[i] < 300.
示例#12
0
    def test_filter_ps(self):
        ps1 = p2sat.ExamplePhaseSpace()
        ps2 = ps1.copy()

        r1 = ps1.data.raw
        r2 = ps2.data.raw

        filter_dict = dict(x=[0,None],r=[0,10],t=[100,300])
        ps2.data.filter_ps(select=filter_dict, update=True)
        id1 = ps1.data.get_axis('id',select=filter_dict)

        assert np.allclose(r1.w[id1],  r2.w)
        assert np.allclose(r1.x[id1],  r2.x)
        assert np.allclose(r1.y[id1],  r2.y)
        assert np.allclose(r1.z[id1],  r2.z)
        assert np.allclose(r1.px[id1], r2.px)
        assert np.allclose(r1.py[id1], r2.py)
        assert np.allclose(r1.pz[id1], r2.pz)
        assert np.allclose(r1.t[id1],  r2.t)
示例#13
0
 def test_len(self):
     ps = p2sat.ExamplePhaseSpace()
     assert len(ps) == len(ps.data.raw.w)
示例#14
0
 def test_deduplicate_ps(self):
     ps = p2sat.ExamplePhaseSpace()
     pass # TODO
示例#15
0
 def test_import(self):
     p2sat.ExamplePhaseSpace()
示例#16
0
 def test_generate(self):
     ps = p2sat.ExamplePhaseSpace()
     pass # TODO
示例#17
0
 def test_rebin_ps(self):
     ps = p2sat.ExamplePhaseSpace()
     pass # TODO