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))
Exemple #3
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)
    # 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()
Exemple #6
0
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'
Exemple #7
0
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')
Exemple #9
0
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
Exemple #10
0
def test_simplify_term_id_1():
    term = PauliTerm('I', 0, 0.5)
    assert term.id() == ''
    assert term.coefficient == 0.5
Exemple #11
0
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()
Exemple #12
0
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
Exemple #13
0
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
Exemple #14
0
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
Exemple #15
0
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
Exemple #16
0
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