Skip to content

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 03 Apr 20:35
· 46 commits to main since this release
0.3.2
2bd6b9a

Fixed

  • decompose structured mode: constraint solver replaces greedy placement heuristic
    • Correctly handles concentration problems where quantities must be placed in both numerator and denominator (e.g., 250 mL in numerator, 400 mg in denominator)
    • Brute-force 2^N solver over sign assignments with Occam tiebreaker (fewest denominators) and literal unit name matching against initial unit factors
    • Falls back to greedy scorer for N > 10 quantities
  • decompose structured mode: auto-bridging of residual unit mismatches
    • After quantity placement, detects and inserts scale conversion factors (e.g., mcg → mg, min → h) so the factor chain produces the correct numeric result
    • Handles both cancelling pairs (mcg⁺¹ · mg⁻¹) and surviving unit mismatches (min⁻¹ vs h⁻¹)
  • decompose structured mode: bare-count diagnostic for dimensionless quantities
    • When ea (dimensionless count) is provided but cannot fill a dimensional gap, returns an actionable error suggesting rate forms (e.g., ea/d, ea/h, ea/min)
    • Quantities expressed as rates (e.g., 3 ea/d) are handled correctly by the constraint solver
  • decompose query mode: cross-basis conversions (CGS ↔ SI) no longer rejected as dimension mismatches (e.g., Pa*s → poise, dyne → N, m²/s → stokes)
  • Fuzzy unit suggestions crashed on unknown units due to stale _UNIT_REGISTRY import path (ucon.units → ucon.resolver)
  • Inline slug test replaced with smoot to avoid collision with built-in slug unit added in ucon 1.1.x

Changed

  • Minimum ucon dependency bumped from >=1.0.0 to >=1.1.2
  • Decompose eval suite expanded: 1 GB to MB, 1e-9 m to nm, 1 TiB to GiB now tested directly (requires ucon 1.1.2 resolver fixes and binary prefix support)
  • Structured mode eval tests added to live server eval script