Problem or motivation
tests/python/utils_qiskit.py has a hand-maintained _SKIP_GATES set for annotations, noise operations, and gates that the Qiskit oracle intentionally ignores or does not support. There is no focused test that checks this skip list against the converter behavior.
That makes it easy for _SKIP_GATES to grow stale: a gate could become supported without leaving the skip list, or a newly handled gate could fail to round-trip through the converter and Clifft without being caught directly.
Proposed solution
Add a focused Python test around the Qiskit oracle helper.
Suggested shape:
- Enumerate a small explicit list of supported representative Stim/Clifft gates that should not be skipped by
utils_qiskit.stim_to_qiskit / related helpers.
- Assert that each non-skipped representative converts through the Qiskit helper and produces a circuit that Clifft accepts.
- Keep
_SKIP_GATES as an explicit allow-list for annotations/noise/unsupported cases, but test that it does not accidentally include gates covered by the supported representative list.
- Make failures actionable, e.g. name the gate that should be supported but was skipped or failed conversion.
Suggested acceptance criteria:
- Add a test under
tests/python/ that exercises _SKIP_GATES and supported conversion behavior.
- The test covers the existing supported-gate families used by the Qiskit oracle, without trying to exhaustively fuzz every parameterization.
- The test passes with
uv run pytest tests/python/ -v.
Alternatives considered
An exhaustive test over every possible Qiskit/Stim gate spelling would be brittle and much larger than needed. A representative supported-gate list plus the existing oracle tests should be enough to catch stale skip-list mistakes while keeping this approachable as a first issue.
Problem or motivation
tests/python/utils_qiskit.pyhas a hand-maintained_SKIP_GATESset for annotations, noise operations, and gates that the Qiskit oracle intentionally ignores or does not support. There is no focused test that checks this skip list against the converter behavior.That makes it easy for
_SKIP_GATESto grow stale: a gate could become supported without leaving the skip list, or a newly handled gate could fail to round-trip through the converter and Clifft without being caught directly.Proposed solution
Add a focused Python test around the Qiskit oracle helper.
Suggested shape:
utils_qiskit.stim_to_qiskit/ related helpers._SKIP_GATESas an explicit allow-list for annotations/noise/unsupported cases, but test that it does not accidentally include gates covered by the supported representative list.Suggested acceptance criteria:
tests/python/that exercises_SKIP_GATESand supported conversion behavior.uv run pytest tests/python/ -v.Alternatives considered
An exhaustive test over every possible Qiskit/Stim gate spelling would be brittle and much larger than needed. A representative supported-gate list plus the existing oracle tests should be enough to catch stale skip-list mistakes while keeping this approachable as a first issue.