From ce695e8062b412b0880084b60cbb4bb7ca75a24c Mon Sep 17 00:00:00 2001 From: ldm0 Date: Sun, 30 Aug 2026 10:19:16 +0800 Subject: [PATCH] fix(geometry): serialize DOMMatrix numbers like ECMAScript --- moli-geometry/src/lib.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/moli-geometry/src/lib.rs b/moli-geometry/src/lib.rs index 192e699651..1fbc5b3ccd 100644 --- a/moli-geometry/src/lib.rs +++ b/moli-geometry/src/lib.rs @@ -81,6 +81,25 @@ mod tests { ); } + #[test] + fn dom_matrix_text_uses_ecmascript_number_serialization() { + for (value, expected) in [ + (1.0 / 300_000_000.0, "3.3333333333333334e-9"), + (f64::MAX, "1.7976931348623157e+308"), + (f64::MIN_POSITIVE * f64::EPSILON, "5e-324"), + ] { + let matrix = DomMatrixComponents { + m42: value, + ..DomMatrixComponents::identity() + }; + + assert_eq!( + matrix.dom_matrix_text_with_dimension(true).unwrap(), + format!("matrix(1, 0, 0, 1, 0, {expected})") + ); + } + } + #[test] fn inverse_handles_invertible_3d_matrix() { let matrix = DomMatrixComponents::identity()