Commit Graph

4 Commits

Author SHA1 Message Date
J. Nick Koston f891ea3752 add tests 2026-04-14 14:54:51 -10:00
J. Nick Koston 2ccd94e1ad add tests 2026-04-14 14:54:42 -10:00
J. Nick Koston 5066171a9d Address Copilot review: uint32 overflow guard, docstring, test namespace/include 2026-04-14 08:36:09 -10:00
J. Nick Koston d8e586609f [core] Optimize value_accuracy_to_buf to avoid snprintf
Replace snprintf("%.*f") with integer-based formatting for finite
float values with accuracy_decimals 0-3 (covers virtually all sensor
usage). Falls back to snprintf for higher accuracy or NaN/Inf.

Uses lrint() with double cast for the multiply to match snprintf's
rounding behavior exactly. The fast path avoids snprintf's heavy
float formatting machinery entirely.

Also optimizes value_accuracy_with_uom_to_buf to append the UOM
string directly instead of going through snprintf.

Adds C++ unit tests that verify output matches snprintf for a range
of values including edge cases.

Benchmark: 92,961ns -> 6,484ns (14.3x faster, 2000 iterations).
2026-04-08 20:46:16 -10:00