Skip to content

test: run pytket on guppy_opt tests, measure (very limited) success#1250

Merged
acl-cqc merged 9 commits intomainfrom
acl/guppy_opt_tests
Nov 17, 2025
Merged

test: run pytket on guppy_opt tests, measure (very limited) success#1250
acl-cqc merged 9 commits intomainfrom
acl/guppy_opt_tests

Conversation

@acl-cqc
Copy link
Copy Markdown
Contributor

@acl-cqc acl-cqc commented Nov 11, 2025

Sadly none of the tests reaches the .opt hugr; we do not expect any with a .flat hugr to reach that step yet as we are not flattening.

@codecov
Copy link
Copy Markdown

codecov bot commented Nov 11, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.46%. Comparing base (07667a7) to head (0ebc1b7).
⚠️ Report is 1 commits behind head on main.

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              
Flag Coverage Δ
python 92.65% <ø> (ø)
qis-compiler 100.00% <ø> (ø)
rust 78.81% <ø> (+0.35%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@acl-cqc acl-cqc force-pushed the acl/guppy_opt_tests branch from 8a46b49 to 1a3d20d Compare November 12, 2025 15:55
Base automatically changed from acl/guppy_opt_counts to main November 12, 2025 16:02
@acl-cqc acl-cqc force-pushed the acl/guppy_opt_tests branch from 1a3d20d to 68c22b4 Compare November 12, 2025 17:19
@acl-cqc acl-cqc changed the title test: try running pytket on guppy_opt tests, measure success test: run pytket on guppy_opt tests, measure (very limited) success Nov 12, 2025
#[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)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haven't looked at what's going on here with this TKET1 op

@acl-cqc acl-cqc force-pushed the acl/guppy_opt_tests branch from 63baf80 to b9b004b Compare November 12, 2025 18:01
@acl-cqc acl-cqc requested a review from aborgna-q November 12, 2025 18:06
@acl-cqc acl-cqc marked this pull request as ready for review November 12, 2025 18:06
@acl-cqc acl-cqc requested a review from a team as a code owner November 12, 2025 18:06
github-merge-queue bot pushed a commit that referenced this pull request Nov 13, 2025
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
Copy link
Copy Markdown
Collaborator

@aborgna-q aborgna-q left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CI errors should be fixed after #1254.
Be sure to rebase/merge main.

#[case::simple_cx(guppy_simple_cx(), [
("tket.quantum.QAlloc", 2), ("tket.quantum.CX", 2), ("tket.quantum.MeasureFree", 2)
])]
#[should_panic = "xfail"]
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

#[case::nested("nested")]
#[case::ranges("ranges")]
#[should_panic] // This does not yet pass for any case!
fn optimise_guppy(#[case] name: &str) {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

@acl-cqc
Copy link
Copy Markdown
Contributor Author

acl-cqc commented Nov 14, 2025

The CI errors should be fixed after #1254. Be sure to rebase/merge main.

Sweet, thanks! 👍

@acl-cqc acl-cqc requested a review from aborgna-q November 14, 2025 17:54
@acl-cqc acl-cqc added this pull request to the merge queue Nov 17, 2025
Merged via the queue into main with commit 64296c3 Nov 17, 2025
24 checks passed
@acl-cqc acl-cqc deleted the acl/guppy_opt_tests branch November 17, 2025 15:19
@hugrbot hugrbot mentioned this pull request Nov 13, 2025
github-merge-queue bot pushed a commit that referenced this pull request Feb 3, 2026
## 🤖 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/).
@hugrbot hugrbot mentioned this pull request Feb 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants