• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Qiskit / qiskit / 23405268380
87%
main: 87%

Build:
Build:
LAST BUILD BRANCH: sabre/layers/1
DEFAULT BRANCH: main
Ran 22 Mar 2026 03:04PM UTC
Jobs 1
Files 928
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Mar 2026 02:34PM UTC coverage: 87.262% (-0.01%) from 87.273%
23405268380

push

github

web-flow
Split two qubit decomposer file into separate files (#15833)

This commit takes the single crates/synthesis/src/two_qubit_decompose.rs
file and splits it into a directory that contains several submodule
files. The original file kind of organically mirrored the python
structure which was to have all the two qubit decomposer implementations
in a single giant file. This was an anti-pattern in python and has led
to us missing many details over time because it was impossible to keep
the entire contents of the file in your head or on screen. This has also
translated to the Rust version of this module as I recently discovered
during the development of #13419 that there is a duplicated method with
two different names on the two qubit basis decomposer. The
implementations actually are right next to each other in the impl block.
Nobody noticed because the file was too big. This commit doesn't fix
this as I wanted this migration to not change any code if possible. The
new structure of this module is to break out each decomposer
implementation into a standalone file. If we add new decomposers in the
future they will naturally fit into a new file.

The only small changes made to the code in this commit are mostly about
visibility of functions and structs because things need to be at least
pub(super) if they cross a file boundary now. A few places were made
fully pub or pub(crate) depending on how they're used. Python things
were made full pub to indicate that even if pyo3 doesn't require it.
There was one small code change made as part of this in the
`TwoQubitBasisDecomposer::__getnewargs__` method it was previously
accessing the `TwoQubitWeylDecomposer`'s `unitary_matrix` field and then
converting that to a python array and finally a Py<PyAny>. However there
was a dedicated method for that already
`TwoQubitWeylDecomposer::unitary_matrix()`, I switched the
implementation to just use that method instead. I originally did this in
order to avoid changing the visibili... (continued)

1839 of 2034 new or added lines in 6 files covered. (90.41%)

20 existing lines in 3 files now uncovered.

103549 of 118664 relevant lines covered (87.26%)

1002409.08 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
88.24
crates/synthesis/src/two_qubit_decompose/mod.rs
13
53.57
crates/synthesis/src/two_qubit_decompose/gate_sequence.rs
26
96.53
crates/synthesis/src/two_qubit_decompose/weyl_decomposition.rs
34
90.71
crates/synthesis/src/two_qubit_decompose/controlled_u_decomposer.rs
120
85.09
crates/synthesis/src/two_qubit_decompose/basis_decomposer.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
73.89
-0.04% crates/circuit/src/parameter/symbol_expr.rs
7
92.29
-0.26% crates/qasm2/src/lex.rs
12
97.15
-0.95% crates/qasm2/src/parse.rs
Jobs
ID Job ID Ran Files Coverage
1 23405268380.1 22 Mar 2026 03:04PM UTC 928
87.26
GitHub Action Run
Source Files on build 23405268380
  • Tree
  • List 928
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23405268380
  • 7c0cd532 on github
  • Prev Build on gh-readonly-queue/main/pr-15787-1aeb988c2ad946adf076a3622f95b3e08bbcc31f (#23401061225)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc