Skip to content

Commit fdcfd25

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

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

test/unit_tests/braket/quantum_information/test_pauli_string_sum.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,45 @@ 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(
144+
[(1.0, "X"), (1.0, "ZY")]
145+
)
146+
assert PauliStringSum([(1.0, "X")]) != 1
147+
148+
149+
def test_from_sum_uses_default_target_for_standard_observables_and_rejects_unmapped_observable():
150+
from braket.circuits.observables import Sum
151+
152+
from_sum_with_no_targets = PauliStringSum.from_sum(Sum([1.0 * X()]))
153+
assert from_sum_with_no_targets.to_list() == [(1.0, "+X")]
154+
155+
class NonStandardObservable:
156+
coefficient = 1.0
157+
158+
def _unscaled(self):
159+
return object()
160+
161+
with pytest.raises(TypeError, match="Unsupported observable type"):
162+
PauliStringSum._term_from_observable(NonStandardObservable())

0 commit comments

Comments
 (0)