Hallo zusammen, ich möchte in einem Unit Test ein double Array überprüfen was ich von einer Funktion zurück bekomme. Für einen einzelnen double - Wert habe ich bei Assert.AreEqual() die Möglichkeit gefunden, noch ein Delta anzugeben um "Rundungsfehler" zu ignorieren. Für ein Array finde ich aber keine passende Überladung?!
Dann bleibt mir nur eine Schleife um die Werte einzeln zu testen? Oder habe ich was übersehen?
AreEqual für ein double[] testet nicht Wertgleichheit der Elemente der Arrays, sondern Referenzgleichheit der Arrays. Insofern kommst Du um eine Schleife sowieso nicht herum - oder um die Suche nach einer Bibliothek / Testframework, das dieses Szenario unterstützt. Ich meine mich dunkel zu erinnern, dass es in NUnit spezielle Asserts für Collections/Listen/Arrays gibt, bin mir aber nicht sicher.
Hab grad auch mal bei NUnit nachgeschaut. CollectionAssert.AreEqual() hat eine Überladung, bei der Du einen Comparer angeben kannst. Mit einer kleinen Lambda-Funktion kannst Du dort den vergleich mit delta nachbilden.
CollectionAssert.AreEqual(expected, actual);
geprüft. Das prüft nur Wertgleichheit, aber leider eben ohne eine Delta Option.