def test_ids_no_sort(): term_1 = PauliTerm("Z", 0, 1.0) * PauliTerm("Z", 1, 1.0) * PauliTerm( "X", 5, 5) term_2 = PauliTerm("X", 5, 5) * PauliTerm("Z", 0, 1.0) * PauliTerm( "Z", 1, 1.0) assert term_1.id(sort_ops=False) == 'Z0Z1X5' assert term_2.id(sort_ops=False) == 'X5Z0Z1'
def test_ids_no_sort(): q = QubitPlaceholder.register(6) term_1 = PauliTerm("Z", q[0], 1.0) * PauliTerm("Z", q[1], 1.0) * PauliTerm( "X", q[5], 5) term_2 = PauliTerm("X", q[5], 5) * PauliTerm("Z", q[0], 1.0) * PauliTerm( "Z", q[1], 1.0) assert re.match('Z.+Z.+X.+', term_1.id(sort_ops=False)) assert re.match('X.+Z.+Z.+', term_2.id(sort_ops=False))
def test_ids(): q = QubitPlaceholder.register(6) term_1 = PauliTerm("Z", q[0], 1.0) * PauliTerm("Z", q[1], 1.0) * PauliTerm("X", q[5], 5) term_2 = PauliTerm("X", q[5], 5) * PauliTerm("Z", q[0], 1.0) * PauliTerm("Z", q[1], 1.0) # Not sortable with pytest.raises(TypeError): with pytest.warns(FutureWarning): term_1.id() == term_2.id()
def test_ids(): term_1 = PauliTerm("Z", 0, 1.0) * PauliTerm("Z", 1, 1.0) * PauliTerm( "X", 5, 5) term_2 = PauliTerm("X", 5, 5) * PauliTerm("Z", 0, 1.0) * PauliTerm( "Z", 1, 1.0) with pytest.warns(FutureWarning) as w: assert term_1.id() == term_2.id() assert 'should be avoided' in str(w[0])
def test_ids(): q = QubitPlaceholder.register(6) term_1 = PauliTerm("Z", q[0], 1.0) * PauliTerm("Z", q[1], 1.0) * PauliTerm( "X", q[5], 5) term_2 = PauliTerm("X", q[5], 5) * PauliTerm("Z", q[0], 1.0) * PauliTerm( "Z", q[1], 1.0) with pytest.raises(TypeError): # Not sortable t = term_1.id() == term_2.id()
def test_simplify_terms(): term = PauliTerm('Z', 0) * -1.0 * PauliTerm('Z', 0) assert term.id() == '' assert term.coefficient == -1.0 term = PauliTerm('Z', 0) + PauliTerm('Z', 0, 1.0) assert str(term) == '2.0*Z0'
def test_simplify_terms(): term = PauliTerm("Z", 0) * -1.0 * PauliTerm("Z", 0) assert term.id() == "" assert term.coefficient == -1.0 term = PauliTerm("Z", 0) + PauliTerm("Z", 0, 1.0) assert str(term) == "(2+0j)*Z0"
def test_simplify_terms(): q = QubitPlaceholder.register(1) term = PauliTerm('Z', q[0]) * -1.0 * PauliTerm('Z', q[0]) assert term.id() == '' assert term.coefficient == -1.0 term = PauliTerm('Z', q[0]) + PauliTerm('Z', q[0], 1.0) assert str(term).startswith('(2+0j)*Zq')
def test_simplify_term_single(): term = PauliTerm('Z', 0) * PauliTerm('I', 1) * PauliTerm( 'X', 2, 0.5j) * PauliTerm('Z', 0, 1.0) assert term.id() == 'X2' assert term.coefficient == 0.5j
def test_simplify_term_id_1(): term = PauliTerm('I', 0, 0.5) assert term.id() == '' assert term.coefficient == 0.5
def test_ids(): term_1 = PauliTerm("Z", 0, 1.0) * PauliTerm("Z", 1, 1.0) * PauliTerm( "X", 5, 5) term_2 = PauliTerm("X", 5, 5) * PauliTerm("Z", 0, 1.0) * PauliTerm( "Z", 1, 1.0) assert term_1.id() == term_2.id()
def test_simplify_term_multindex(): term = PauliTerm('X', 0, coefficient=-0.5) * PauliTerm('Z', 0, coefficient=-1.0) \ * PauliTerm('X', 2, 0.5) assert term.id() == 'Y0X2' assert term.coefficient == -0.25j
def test_simplify_term_multindex(): q0, q2 = QubitPlaceholder.register(2) term = PauliTerm("X", q0, coefficient=-0.5) * PauliTerm( "Z", q0, coefficient=-1.0) * PauliTerm("X", q2, 0.5) assert term.id(sort_ops=False) == "Y{q0}X{q2}".format(q0=q0, q2=q2) assert term.coefficient == -0.25j
def test_simplify_term_single(): q0, q1, q2 = QubitPlaceholder.register(3) term = PauliTerm("Z", q0) * PauliTerm("I", q1) * PauliTerm( "X", q2, 0.5j) * PauliTerm("Z", q0, 1.0) assert term.id() == "X{}".format(q2) assert term.coefficient == 0.5j
def test_simplify_term_single(): term = PauliTerm("Z", 0) * PauliTerm("I", 1) * PauliTerm( "X", 2, 0.5j) * PauliTerm("Z", 0, 1.0) assert term.id() == "X2" assert term.coefficient == 0.5j
def test_simplify_term_multindex(): term = PauliTerm("X", 0, coefficient=-0.5) * PauliTerm( "Z", 0, coefficient=-1.0) * PauliTerm("X", 2, 0.5) assert term.id(sort_ops=False) == "Y0X2" assert term.coefficient == -0.25j