Skip to content

Release v0.3.0: Bug Fixes, Test Infrastructure, NV Extension, and Documentation - #144

Merged
LiuJPhys merged 1 commit into
QuanEstimation:mainfrom
azwphy:main
Jul 4, 2026
Merged

LiuJPhys merged 1 commit into
QuanEstimation:mainfrom
azwphy:main

Conversation

@azwphy

@azwphy azwphy commented Jul 3, 2026

Copy link
Copy Markdown
Member

Overview

This release consolidates improvements across bug fixes, test infrastructure,
the NV magnetometer extension, and comprehensive user documentation.
All sub-packages (QuanEstimationBase, NVMagnetometer) are versioned at 0.3.0.

Highlights

Bug Fixes

  • Gram-Schmidt inner loop range corrected (1:j → 1:j-1)
  • Circular QuanEstimationBase dependency removed from root Project.toml
  • GeneralState→Ket conversion fixed for Julia 1.12
  • println replaced with throw(ArgumentError) for invalid estimator inputs
  • Atomic file writes for .dat output files
  • LaTeX docstring escaping fixed for Julia 1.12 raw string compatibility
  • Mopt_Projection, Mopt_LinearComb, Mopt_Rotation exported for Python bridge
  • PyExt bridge fixes: ControlOpt seed→MersenneTwister, GeneralState dimension check
  • Bayes estimation posterior normalization: sum → trapz

Test Infrastructure

  • Golden reference system: 48 JSON reference files for PSO/DE/GRAPE algorithms
    across QFI/CFI/HCRB objectives and NV scenarios
  • Zero-assertion elimination: replaced !isnothing/!isempty smoke checks with
    numerical assertions across 38+ files
  • Test directory restructured to mirror src/ layout
  • Root tests sunk to QuanEstimationBase/test/, eliminating duplicates
  • Unified algorithm execution framework (PSO/DE/NM/RI)
  • NV magnetometer tests rewritten with analytic benchmark F = 4g_S²t² (rtol=1e-12)
  • HCRB graceful skip on SCS solver failure
  • Added sysA–sysE analytic reference benchmarks
  • Added sys1 magnetic field control optimization test
  • API compatibility tests: 28 isdefined checks and 15 kwarg acceptance tests

Code Quality

  • Removed Flux.jl dependency: replaced with Zygote throughout
  • Structured exception handling: throw(string) → throw(ArgumentError(...))
  • Removed Revise.jl from runtime deps (moved to [extras])

Solver & Dynamics

  • ExpM solver: forward + adjoint ODE modes
  • GRAPE: noiseless GRAPE repair, autoGRAPE golden references
  • FloatType infrastructure for global floating-point precision
  • StaticMatrixType and MutableMatrixType abstraction for matrix containers

Documentation

  • 9 User Guide pages synced from Python docs
  • Display math rendering fixed for KaTeX
  • @ref links converted to relative paths

Dependencies

  • ChainRulesCore added for AD compatibility
  • StableRNGs added for reproducible test seeds
  • JSON added for golden reference storage
  • Removed from runtime deps: Flux, Revise
  • Version constraints updated for Julia 1.12 compatibility

@codecov

codecov Bot commented Jul 3, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 81.28655% with 32 lines in your changes missing coverage. Please review.
✅ Project coverage is 85.73%. Comparing base (ca2bb81) to head (2124b0e).

Files with missing lines Patch % Lines
...ase/src/ObjectiveFunc/AsymptoticBound/CramerRao.jl 75.00% 11 Missing ⚠️
lib/QuanEstimationBase/src/output.jl 33.33% 6 Missing ⚠️
...b/QuanEstimationBase/src/Common/BayesEstimation.jl 20.00% 4 Missing ⚠️
...c/ObjectiveFunc/BayesianBound/BayesianCramerRao.jl 88.23% 4 Missing ⚠️
...c/ObjectiveFunc/AsymptoticBound/AsymptoticBound.jl 0.00% 2 Missing ⚠️
...nStrategy/AdaptiveEstimation/AdaptiveEstimation.jl 60.00% 2 Missing ⚠️
...stimationStrategy/AdaptiveEstimation/AdptiveMZI.jl 83.33% 1 Missing ⚠️
...c/Scheme/Parameterization/Lindblad/LindbladData.jl 87.50% 1 Missing ⚠️
.../QuanEstimationBase/src/Scheme/error_evaluation.jl 92.85% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #144      +/-   ##
==========================================
+ Coverage   77.52%   85.73%   +8.20%     
==========================================
  Files          41       40       -1     
  Lines        5211     5181      -30     
==========================================
+ Hits         4040     4442     +402     
+ Misses       1171      739     -432     

☔ View full report in Codecov by Harness.
📢 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.

@LiuJPhys
LiuJPhys merged commit f6238cb into QuanEstimation:main Jul 4, 2026
6 checks passed
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