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
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"]')
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, '')