Skip to content

Commit 12f08c2

Browse files
committed
test: cover pauli string sum edge cases for coverage
1 parent 2ca71bc commit 12f08c2

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

test/unit_tests/braket/quantum_information/test_pauli_string_sum.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,43 @@ def test_from_sum_rejects_non_sum_observable():
118118
def test_from_sum_rejects_non_pauli_observable_terms():
119119
with pytest.raises(TypeError, match="Unsupported observable factor H"):
120120
PauliStringSum.from_sum(H() + X())
121+
122+
123+
def test_empty_sum_has_zero_qubit_count_and_repr():
124+
empty_sum = PauliStringSum()
125+
126+
assert empty_sum.qubit_count == 0
127+
assert repr(empty_sum) == "PauliStringSum([])"
128+
129+
130+
def test_zero_coefficient_terms_cancel_to_empty_sum():
131+
pauli_sum = PauliStringSum([(1.0, "X"), (-1.0, "X"), (2.0, "Y")])
132+
133+
assert pauli_sum.to_list() == [(2.0, "+Y")]
134+
135+
136+
def test_zero_coefficient_term_is_ignored():
137+
pauli_sum = PauliStringSum([(0.0, "X"), (2.0, "Y")])
138+
139+
assert pauli_sum.to_list() == [(2.0, "+Y")]
140+
141+
142+
def test_radd_and_non_matching_eq_type():
143+
assert "ZY" + PauliStringSum([(1.0, "X")] ) == PauliStringSum([(1.0, "X"), (1, "ZY")])
144+
assert PauliStringSum([(1.0, "X")]) != 1
145+
146+
147+
def test_from_sum_uses_default_target_for_standard_observables_and_rejects_unmapped_observable():
148+
from braket.circuits.observables import Sum
149+
150+
from_sum_with_no_targets = PauliStringSum.from_sum(Sum([1.0 * X()]))
151+
assert from_sum_with_no_targets.to_list() == [(1.0, "+X")]
152+
153+
class NonStandardObservable:
154+
coefficient = 1.0
155+
156+
def _unscaled(self):
157+
return object()
158+
159+
with pytest.raises(TypeError, match="Unsupported observable type"):
160+
PauliStringSum._term_from_observable(NonStandardObservable())

0 commit comments

Comments
 (0)