J'ai récemment conçu un module de série chronologique où ma série chronologique est essentiellement un SortedDictionnary<DateTime, double>
.
Maintenant, je voudrais créer des tests unitaires pour m'assurer que ce module fonctionne toujours et produit le résultat attendu.
Une opération courante consiste à calculer les performances entre les points de la série temporelle.
Donc, ce que je fais, c'est créer une série chronologique avec, disons, {1.0, 2.0, 4.0} (à certaines dates), et je m'attends à ce que le résultat soit {100%, 100%}.
Le fait est que si je crée manuellement une série temporelle avec les valeurs {1.0, 1.0} et que je vérifie l'égalité (en comparant chaque point), le test ne passera pas, car il y aura toujours des inexactitudes lors du travail avec des représentations binaires de réels Nombres.
J'ai donc décidé de créer la fonction suivante:
private static bool isCloseEnough(double expected, double actual, double tolerance=0.002)
{
return squaredDifference(expected, actual) < Math.Pow(tolerance,2);
}
Existe-t-il une autre manière courante de traiter un tel cas?