예제 #1
0
def test_ambit_permute_format_2():
    a = SecondQuantizedOperator("g0,g1,c2", "p0,p1,p2", 'spin-integrated')
    p_cre = [[Index('g0'), Index('g1')], [Index('c2')]]
    p_ann = [[Index('p0'), Index('p1'), Index('p2')]]
    ref = {(1, '["p0,p1,p2,g0,g1,c2"]'), (-1, '["p0,p1,p2,g0,c2,g1"]'),
           (1, '["p0,p1,p2,c2,g0,g1"]')}
    for pair in a.ambit_permute_format(p_cre, p_ann, cre_first=False):
        assert pair in ref
        ref.remove(pair)
    assert len(ref) == 0
예제 #2
0
def test_ambit_permute_format_3():
    # TODO: is this necessary?
    # ignore all input partitions for mixed spin indices
    a = SecondQuantizedOperator("g0,G1,c2", "p0,p1,P2", 'spin-integrated')
    for pair in a.ambit_permute_format([], [], cre_first=True):
        assert pair == (1, '["g0,G1,c2,p0,p1,P2"]')
예제 #3
0
def test_ambit_permute_format_1():
    # empty sq_op ignores all input partitions
    a = SecondQuantizedOperator([], [], 'spin-orbital')
    for pair in a.ambit_permute_format([], []):
        assert pair == (1, '')