コード例 #1
0
class TestFrameIt(unittest.TestCase):
    
    q1 = Q([1, 1, 3, 4])
    q2 = Q([2, 2, -3, -4])
    q3 = Q([3, 3, 3, 4])
    q4 = Q([4, 4, 3, 2])
    tri_state = Qs([q1, q2, q3])
    five_state = Qs([q1, q2, q3, q4, conj(q3)])
    
    def test_1000_opt(self):
        FIt = FrameIt(self.tri_state)
        self.assertTrue(FIt.opt.start == 1)
        self.assertTrue(FIt.opt.end == 3)
        self.assertTrue(FIt.opt.frames == 100)

    def test_1100_split_events(self):
        fi = FrameIt(self.tri_state)
        df = fi.split_events()
        self.assertTrue(df.iloc[0, 0] == 1.0)
        self.assertTrue(df.iloc[1, 0] == 2.0)
        self.assertTrue(df.iloc[2, 0] == 3.0)
        
    def test_1200_bin_events_by_time(self):    
        fi = FrameIt(self.tri_state, frames=3)
        df_split = fi.split_events(quiet=True)
        df_bin = fi.bin_events_by_time(df_split)
        self.assertTrue(df_bin.shape == (3, 3))
        self.assertTrue(df_bin[['t_frames']].iloc[2,0] == pd.Interval(2.0, 3.0, closed='right'))
     
    def test_1300_space_bins(self):
        fi = FrameIt(self.five_state, frames=10)
        df_split = fi.split_events(quiet=True)
        df_bin = fi.bin_events_by_time(df_split, quiet=True)
        df_space_bins = fi.space_bins(df_bin)
        self.assertTrue(len(df_space_bins[5]) == 2)
コード例 #2
0
def test__1031_subs():
    t, x, y, z = sp.symbols("t x y z")
    q_sym = Qs([Q([t, x, y, x * y * z])])

    q_z = q_sym.subs({t: 1, x: 2, y: 3, z: 4})
    print("t x y xyz sub 1 2 3 4: ", q_z)
    assert q_z.equals(Qs([Q([1, 2, 3, 24])]))
コード例 #3
0
def test__1031_subs():
    t1, x1, y1, z1 = sp.symbols("t x y z")
    q_syms = Qs([Q([t1, x1, y1, x1 * y1 * z1])])

    q_z = q_syms.subs({t1: 1, x1: 2, y1: 3, z1: 4})
    print("t x y xyz sub 1 2 3 4: ", q_z)
    assert equals(q_z, Qs([Q([1, 2, 3, 24])]))
コード例 #4
0
def test__1581_q_2_qs():
    assert equals(q_2_qs(Qs([Q1]), Qs([P])), Qs([Q(
        [
            -0.0197219653530713,
            -0.2613955437374326,
            0.6496281248064009,
            -0.3265786562423951,
        ])]))
コード例 #5
0
def test__1130_identity():
    I2 = Qs().identity(2, operator=True)
    print("Operator Identity, diagonal 2x2", I2)
    assert equals(I2.qs[0], q1())
    assert equals(I2.qs[1], q0())
    I2 = Qs().identity(2)
    print("Identity on 2 state ket", I2)
    assert equals(I2.qs[0], q1())
    assert equals(I2.qs[1], q1())
コード例 #6
0
def test__1571_lns():
    assert equals(exps(lns(Qs([Q1]))), Qs([Q1]))
    assert equals(lns(Qs([Q1])), Qs([Q(
        [
            1.7005986908310777,
            -0.5151902926640850,
            -0.7727854389961275,
            -1.0303805853281700,
        ])]))
    assert equals(lns(Qs([P])), Qs([Q([1.6094379124341003, 1.2566370614359172, -0.9424777960769379, 0])]))
    assert equals(lns(Qs([R])), Qs([Q([1.0986122886681098, 0, 0, 0])]))
    assert equals(lns(Qs([C])), Qs([Q([1.4978661367769954, 1.1071487177940904, 0, 0])]))
コード例 #7
0
def test__1340_product():
    assert equals(products(b, o),
                  Qs([Q([10, 0, 0, 0]),
                      Q([20, 0, 0, 0]),
                      Q([30, 0, 0, 0])]))
    assert equals(products(b, k), Qs([Q([32, 0, 0, 0])]))
    assert equals(products(products(b, o), k), Qs([Q([320, 0, 0, 0])]))
    assert equals(products(b, b),
                  Qs([Q([1, 0, 0, 0]),
                      Q([4, 0, 0, 0]),
                      Q([9, 0, 0, 0])]))
    assert equals(products(o, k),
                  Qs([Q([40, 0, 0, 0]),
                      Q([50, 0, 0, 0]),
                      Q([60, 0, 0, 0])]))
    assert equals(products(o, o), Qs([Q([100, 0, 0, 0])]))
    assert equals(products(k, k),
                  Qs([Q([16, 0, 0, 0]),
                      Q([25, 0, 0, 0]),
                      Q([36, 0, 0, 0])]))
    assert equals(
        products(k, b),
        Qs([
            Q([4, 0, 0, 0]),
            Q([5, 0, 0, 0]),
            Q([6, 0, 0, 0]),
            Q([8, 0, 0, 0]),
            Q([10, 0, 0, 0]),
            Q([12, 0, 0, 0]),
            Q([12, 0, 0, 0]),
            Q([15, 0, 0, 0]),
            Q([18, 0, 0, 0]),
        ]))
コード例 #8
0
def test__1561_exps():
    assert equals(exps(q0s()), q1s())
    assert equals(
        exps(Qs([Q1])),
        Qs(
            [
                Q(
                    [
                        1.6939227236832994,
                        0.7895596245415588,
                        1.1843394368123383,
                        1.5791192490831176,
                    ]
                )
            ]
        ),
    )
    assert equals(
        exps(Qs([P])),
        Qs([Q([0.2836621854632263, -0.7671394197305108, 0.5753545647978831, 0])]),
    )
    assert equals(exps(Qs([R])), Qs([Q([20.0855369231876679, 0, 0, 0])]))
    assert equals(
        exps(Qs([C])), Qs([Q([-4.8298093832693851, -5.5920560936409816, 0, 0])])
    )
コード例 #9
0
def test__1250_determinant():
    det_v3 = determinant(v3)
    assert equals(det_v3, v3)
    v_1123: Qs = Qs([q_1, q_1, q_2, q_3])
    det_v1123 = determinant(v_1123)
    print("det v1123", det_v1123)
    assert equals(det_v1123, Qs([q_1]))
    v9.print_state("v9")
    det_v9 = determinant(v9)
    print("det_v9", det_v9)
    assert equals(det_v9, Qs([q_9]))
    det_vv9 = determinant(vv9)
    print("det_vv9", det_vv9)
    assert equals(det_vv9, Qs([qn627]))
コード例 #10
0
def test__1080_determinant():
    det_v3 = v3.determinant()
    assert det_v3.equals(v3)
    v1123: Qs = Qs([q_1, q_1, q_2, q_3])
    det_v1123 = v1123.determinant()
    print("det v1123", det_v1123)
    assert det_v1123.equals(Qs([q_1]))
    v9.print_state("v9")
    det_v9 = v9.determinant()
    print("det_v9", det_v9)
    assert det_v9.equals(Qs([q_9]))
    det_vv9 = vv9.determinant()
    print("det_vv9", det_vv9)
    assert det_vv9.equals(Qs([qn627]))
コード例 #11
0
def test__1151_conj_2():
    q_z = conjs(Qs([Q1]), 2)
    print("q_conj 2: ", q_z)
    assert q_z.qs[0].t == -1
    assert q_z.qs[0].x == 2
    assert q_z.qs[0].y == -3
    assert q_z.qs[0].z == 4
コード例 #12
0
def test__1141_conjs_1():
    q_z = conjs(Qs([Q1]), 1)
    print("q_conj 1: ", q_z)
    assert q_z.qs[0].t == -1
    assert q_z.qs[0].x == -2
    assert q_z.qs[0].y == 3
    assert q_z.qs[0].z == 4
コード例 #13
0
def test__1521_tans():
    assert equals(tans(q0s()), q0s())
    assert equals(tans(Qs([Q1])), Qs([Q([0.0000382163172501,
                                         -0.3713971716439372,
                                         -0.5570957574659058,
                                         -0.7427943432878743, ])]))
    assert equals(tans(Qs([P])), Qs([Q([0, 0.7999273634100760, -0.5999455225575570, 0])]))
    assert equals(tans(Qs([R])), Qs([Q([-0.1425465430742778, 0, 0, 0])]))
    assert equals(tans(Qs([C])), Qs([Q([-0.0005079806234700, 1.0004385132020521, 0, 0])]))
コード例 #14
0
def test__1710_kets():
    qz = qss_q_1_q_i.kets()
    q_1_q_ic = Qs([q1(), qi(-1)])
    qss_test = Qss([q_1_q_ic,q_1_q_ic])
    qz2 = qss_q_1_q_i.kets().kets()
    qz3 = qss_q_1_q_i.kets().bras()
    assert equalss(qz, qss_test)
    assert equalss(qz2, qss_test)
    assert equalss(qz3, qss_q_1_q_i)
コード例 #15
0
def test__1511_coss():
    assert equals(coss(q0s()), q1s())
    assert equals(coss(Qs([Q1])), Qs([Q([
        58.9336461679439481,
        34.0861836904655959,
        51.1292755356983974,
        68.1723673809311919,
    ])]))
    assert equals(coss(Qs([P])), Qs([Q([74.2099485247878476, 0, 0, 0])]))
    assert equals(coss(Qs([R])), Qs([Q([-0.9899924966004454, 0, 0, 0])]))
    assert equals(coss(Qs([C])), Qs([Q([-11.3642347064010600, -24.8146514856341867, 0, 0])]))
コード例 #16
0
def test__1501_sins():
    assert equals(sins(q0s()), q0s())
    assert equals(sins(Qs([Q1])), Qs([Q(
        [
            91.7837157840346691,
            -21.8864868530291758,
            -32.8297302795437673,
            -43.7729737060583517,
        ])]))
    assert equals(sins(Qs([P])), Qs([Q([0, 59.3625684622310033, -44.5219263466732542, 0])]))
    assert equals(sins(Qs([R])), Qs([Q([0.1411200080598672, 0, 0, 0])]))
    assert equals(sins(Qs([C])), Qs([Q([24.8313058489463785, -11.3566127112181743, 0, 0])]))
コード例 #17
0
def test__1541_coshs():
    assert equals(coshs(q0s()), q1s())
    assert equals(coshs(Qs([Q1])), Qs([Q(
        [
            0.9615851176369565,
            0.3413521745610167,
            0.5120282618415251,
            0.6827043491220334,
        ])]))
    assert equals(coshs(Qs([P])), Qs([Q([0.2836621854632263, 0, 0, 0])]))
    assert equals(coshs(Qs([R])), Qs([Q([10.0676619957777653, 0, 0, 0])]))
    assert equals(coshs(Qs([C])), Qs([Q([-2.4591352139173837, -2.7448170067921538, 0, 0])]))
コード例 #18
0
def test__1531_sinhs():
    assert equals(sinhs(q0s()), q0s())
    assert equals(sinhs(Qs([Q1])),
                  Qs([Q(
                      [
                          0.7323376060463428,
                          0.4482074499805421,
                          0.6723111749708131,
                          0.8964148999610841,
                      ])]))
    assert equals(sinhs(Qs([P])), Qs([Q([0, -0.7671394197305108, 0.5753545647978831, 0])]))
    assert equals(sinhs(Qs([R])), Qs([Q([10.0178749274099026, 0, 0, 0])]))
    assert equals(sinhs(Qs([C])), Qs([Q([-2.3706741693520015, -2.8472390868488278, 0, 0])]))
コード例 #19
0
def test__1551_tanhs():
    assert equals(tanhs(q0s()), q0s())
    assert equals(tanhs(Qs([Q1])),
                  Qs([Q(
                      [
                          1.0248695360556623,
                          0.1022956817887642,
                          0.1534435226831462,
                          0.2045913635775283,
                      ])]))
    assert equals(tanhs(Qs([P])), Qs([Q([0, -2.7044120049972684, 2.0283090037479505, 0])]))
    assert equals(tanhs(Qs([R])), Qs([Q([0.9950547536867305, 0, 0, 0])]))
    assert equals(tanhs(Qs([C])), Qs([Q([1.0046823121902353, 0.0364233692474038, 0, 0])]))
コード例 #20
0
def test__1304_rotation_and_or_boost():
    q1_sq = Q_states.square()
    beta = 0.003
    gamma = 1 / math.sqrt(1 - beta ** 2)
    h = Qs([Q([gamma, gamma * beta, 0, 0])])
    q_z = Q_states.rotation_and_or_boost(h)
    q_z2 = q_z.square()
    print("q1_sq: ", q1_sq)
    print("boosted: ", q_z)
    print("boosted squared: ", q_z2)
    assert round(q_z2.qs[0].t, 5) == round(q1_sq.qs[0].t, 5)
コード例 #21
0
def test__1471_rotation_and_or_boosts():
    q1_sq = squares(Q_states)
    beta = 0.003
    gamma = 1 / math.sqrt(1 - beta ** 2)
    h = Qs([Q([gamma, gamma * beta, 0, 0])])
    q_z = rotation_and_or_boosts(Q_states, h)
    q_z2 = squares(q_z)
    print("q1_sq: ", q1_sq)
    print("boosted: ", q_z)
    print("boosted squared: ", q_z2)
    assert round(q_z2.qs[0].t, 5) == round(q1_sq.qs[0].t, 5)
コード例 #22
0
def test__1140_product():
    assert b.product(o).equals(Qs([Q([10, 0, 0, 0]), Q([20, 0, 0, 0]), Q([30, 0, 0, 0])]))
    assert b.product(k).equals(Qs([Q([32, 0, 0, 0])]))
    assert b.product(o).product(k).equals(Qs([Q([320, 0, 0, 0])]))
    assert b.product(b).equals(Qs([Q([1, 0, 0, 0]), Q([4, 0, 0, 0]), Q([9, 0, 0, 0])]))
    assert o.product(k).equals(Qs([Q([40, 0, 0, 0]), Q([50, 0, 0, 0]), Q([60, 0, 0, 0])]))
    assert o.product(o).equals(Qs([Q([100, 0, 0, 0])]))
    assert k.product(k).equals(Qs([Q([16, 0, 0, 0]), Q([25, 0, 0, 0]), Q([36, 0, 0, 0])]))
    assert k.product(b).equals(Qs(
        [
            Q([4, 0, 0, 0]),
            Q([5, 0, 0, 0]),
            Q([6, 0, 0, 0]),
            Q([8, 0, 0, 0]),
            Q([10, 0, 0, 0]),
            Q([12, 0, 0, 0]),
            Q([12, 0, 0, 0]),
            Q([15, 0, 0, 0]),
            Q([18, 0, 0, 0]),
        ]
    )
    )
コード例 #23
0
def test_1473_rotations_onlys():
    Q12s, Q1123s = Qs([Q12]), Qs([Q1123])
    Q1123s_rot = rotation_onlys(Q1123s, Q12s)
    print("Q1123s_rot", Q1123s_rot)
    assert equals(Q1123s, Q1123s_rot, vector=False)
    assert not equals(Q1123s, Q1123s_rot, scalar=False)
コード例 #24
0
def test__1460_rotates():
    q_z = rotations(Q_states, Qs([q_i]))
    print("rotation: ", q_z)
    assert equals(q_z, Qs([Q([1, -2, 3, 4])]))
コード例 #25
0
def test__1451_triple_products():
    q_z = triple_products(Q_states, P_states, Q_states)
    print("triple product: ", q_z)
    assert equals(q_z, Qs([Q([-2, 124, -84, 8])]))
コード例 #26
0
def test__1441_divide_bys():
    q_z = divide_bys(Q_states, Q_states)
    print("divide_by: ", q_z)
    assert equals(q_z, Qs([q_1]))
コード例 #27
0
def test__1431_inverses():
    q_z = inverses(P_states)
    print("inverse: ", q_z)
    assert equals(q_z, Qs([Q([0, -0.16, 0.12, 0])]))
コード例 #28
0
def test__1420_product_AOp4iB():
    AOp4iB = products(A, products(Op4i, B))
    print("A* Op4i B: ", AOp4iB)
    assert equals(AOp4iB, Qs([Q([-9, 24, 0, 8])]))
コード例 #29
0
def test__1390_product_AOpB():
    AOpB = products(A, products(Op, B))
    print("A Op B: ", AOpB)
    assert equals(AOpB, Qs([Q([0, 22, 11, 0])]))
コード例 #30
0
def test__1350_product_AA():
    Aket = deepcopy(A).ket()
    AA = products(A, Aket)
    print("<A|A>: ", AA)
    assert equals(AA, Qs([Q([17, 0, 0, 0])]))