Ich habe vor kurzem ein Zeitreihenmodul entworfen, in dem meine Zeitreihe im Wesentlichen a ist SortedDictionnary<DateTime, double>
.
Jetzt möchte ich Unit-Tests erstellen, um sicherzustellen, dass dieses Modul immer funktioniert und das erwartete Ergebnis liefert.
Eine übliche Operation besteht darin, die Leistung zwischen den Punkten in der Zeitreihe zu berechnen.
Ich erstelle also eine Zeitreihe mit beispielsweise {1.0, 2.0, 4.0} (zu bestimmten Daten) und erwarte ein Ergebnis von {100%, 100%}.
Die Sache ist, wenn ich manuell eine Zeitreihe mit den Werten {1.0, 1.0} erstelle und auf Gleichheit prüfe (indem ich jeden Punkt vergleiche), würde der Test nicht bestanden, da es immer Ungenauigkeiten geben wird, wenn ich mit binären Darstellungen von Real arbeite zahlen.
Daher habe ich beschlossen, die folgende Funktion zu erstellen:
private static bool isCloseEnough(double expected, double actual, double tolerance=0.002)
{
return squaredDifference(expected, actual) < Math.Pow(tolerance,2);
}
Gibt es eine andere übliche Art, mit einem solchen Fall umzugehen?