test: run pytket on guppy_opt tests, measure (very limited) success#1250
test: run pytket on guppy_opt tests, measure (very limited) success#1250
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1250 +/- ##
==========================================
+ Coverage 79.12% 79.46% +0.34%
==========================================
Files 160 160
Lines 20421 20378 -43
Branches 19489 19446 -43
==========================================
+ Hits 16158 16194 +36
+ Misses 3280 3201 -79
Partials 983 983
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
8a46b49 to
1a3d20d
Compare
1a3d20d to
68c22b4
Compare
tket-qsystem/tests/guppy_opt.rs
Outdated
| #[case::ranges(guppy_ranges(), [ | ||
| ("tket.quantum.QAlloc", 4), ("tket.quantum.MeasureFree", 4), ("tket.quantum.H", 2), ("tket.quantum.CX", 2) | ||
| ], [ | ||
| ("TKET1.tk1op", 1), ("tket.quantum.QAlloc", 1), ("tket.quantum.H", 1), ("tket.quantum.MeasureFree", 1) |
There was a problem hiding this comment.
Haven't looked at what's going on here with this TKET1 op
63baf80 to
b9b004b
Compare
When the TKET_C_API_PATH env var is set, `tket1-passes` looks for the shared library in the given path rather than trying to build it by itself. We use the to be able to cache a single artifact and share it around. Although the env var is set globally, we weren't calling the install action in a couple jobs. This should fix the errors seen in #1250
| #[case::simple_cx(guppy_simple_cx(), [ | ||
| ("tket.quantum.QAlloc", 2), ("tket.quantum.CX", 2), ("tket.quantum.MeasureFree", 2) | ||
| ])] | ||
| #[should_panic = "xfail"] |
There was a problem hiding this comment.
Note this homebrew xfail mechanism, which allows the test to fail but only if the gate counts are exactly as expected in the test header.
Could do the same to flatten_guppy too?
| #[case::nested("nested")] | ||
| #[case::ranges("ranges")] | ||
| #[should_panic] // This does not yet pass for any case! | ||
| fn optimise_guppy(#[case] name: &str) { |
There was a problem hiding this comment.
To some extent this test is redundant, it's a kind of composition of the other two, but I think it's good to have as a summary (the other two are merely diagnostic really)
Sweet, thanks! 👍 |
## 🤖 New release * `tket`: 0.16.0 -> 0.17.0 (✓ API compatible changes) * `tket-qsystem`: 0.22.0 -> 0.23.0 (✓ API compatible changes) <details><summary><i><b>Changelog</b></i></summary><p> ## `tket` <blockquote> ## [0.17.0](tket-v0.16.0...tket-v0.17.0) - 2026-02-02 ### Bug Fixes - *(encoded-circ)* Track unsupported wires between input and output ([#1224](#1224)) - Multiple fixes to the pytket encoder ([#1226](#1226)) - Don't use opgroup in pytket barrier encoding ([#1251](#1251)) - guppy_to_circuit always returns num_operations = 0 ([#1200](#1200)) - *(pytket-decoder)* Avoid QAllocating and immediately freeing qubits ([#1256](#1256)) - Encoding of opaque subgraphs with no associated qubit/bit ([#1295](#1295)) - [**breaking**] Don't rely on command params for pytket barriers ([#1298](#1298)) - Track output qubits in CircuitInfo ([#1304](#1304)) - Wrongly reused qubit IDs in pytket encoding ([#1358](#1358)) ### New Features - Deprecate local find_tuple_unpack rewrite ([#1188](#1188)) - Add CopyableExpressionAST ([#1209](#1209)) - `NormalizeGuppy` pass to simplify generated structure ([#1220](#1220)) - [**breaking**] pytket EncodedCircuit struct for in-place pytket optimisation ([#1211](#1211)) - [**breaking**] Interval is independent of resource IDs and scope position ([#1205](#1205)) - Don't translate usizes to pytket ([#1241](#1241)) - BorrowSquashPass to elide redundant borrow/return ops ([#1159](#1159)) - [**breaking**] Bump hugr to 0.25.0 ([#1325](#1325)) - Remove order edges in NormalizeGuppy pass ([#1326](#1326)) - [**breaking**] Remove deprecated unpack tuple pass ([#1387](#1387)) ### Refactor - Remove contain_qubits, use TypeUnpacker ([#1283](#1283)) - [**breaking**] Replace Subcircuit with SiblingSubgraph ([#1288](#1288)) - *(metadata)* [**breaking**] Migrate all metadata keys onto the new metadata traits ([#1328](#1328)) </blockquote> ## `tket-qsystem` <blockquote> ## [0.23.0](tket-qsystem-v0.22.0...tket-qsystem-v0.23.0) - 2026-02-02 ### Bug Fixes - [**breaking**] Don't rely on command params for pytket barriers ([#1298](#1298)) - Wrongly reused qubit IDs in pytket encoding ([#1358](#1358)) ### New Features - `NormalizeGuppy` pass to simplify generated structure ([#1220](#1220)) - Allow running arbitrary serializable pytket passes on hugrs ([#1266](#1266)) - BorrowSquashPass to elide redundant borrow/return ops ([#1159](#1159)) - [**breaking**] Bump hugr to 0.25.0 ([#1325](#1325)) - Remove order edges in NormalizeGuppy pass ([#1326](#1326)) - hide new public funcs introduced by linearization ([#1333](#1333)) ### Testing - regenerate guppy_opt examples, and count gates ([#1249](#1249)) - run pytket on guppy_opt tests, measure (very limited) success ([#1250](#1250)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/).
Sadly none of the tests reaches the
.opthugr; we do not expect any with a.flathugr to reach that step yet as we are not flattening.