ScalaTest - Suche nach "fast gleich" für Floats und Objekte mit Floats [duplizieren]

8

Beim Schreiben von Tests für Operationen mit Gleitkommazahlen oder Objekten, die Gleitkommazahlen enthalten (wie Vektoren oder Matrizen), möchte ich oft nicht nach Gleichheit, sondern nach "fast gleich" testen (Differenz kann ein Epsilon sein).

Bei der Verwendung von ScalaTest FunSuite schreibt man normalerweise assert(xxx == yyy) . Mit Floats und Likes kann ich assert(math.abs(xxx - yyy)<epsilon) schreiben, aber dann bekomme ich nicht die nette Funktion des ScalaTest Assert-Makros von die verglichenen Werte als Teil der Fehlermeldung gemeldet werden.

Wie kann ich in ScalaTest testen, ob float "fast equality" ist, so dass die Werte bei fehlgeschlagenem Test als Teil der Fehlermeldung geschrieben werden?

Testbeispiel:

%Vor%     
Suma 29.04.2015, 08:46
quelle

1 Antwort

13

Es kann mit TolerantNumerics und mit === statt == .

%Vor%

Für Ihre eigenen Typen können Sie Ihre eigenen Unterklassen von Gleichheit [T] .

    
Suma 29.04.2015, 10:03
quelle

Tags und Links