I have done porting of a c++ project with gtest tests to a c# project having an nunit test. Now I encounter problems with floating point precision.
in the nunit test I have being not ok (red)
Assert.AreEqual(0.7, 7 * 0.1);
in the gtest test I have:
ASSERT_DOUBLE_EQ(0.7, 7 * 0.1);
which is ok (green)
The question now is WHY???
Alternatively you can add a third parameter, which is the maximum difference between the two values, as you can read here.
public static void AreEqual (
double expected,
double actual,
double delta
)
Verifies that two specified doubles are equal, or within the specified accuracy of each other. The assertion fails if they are not within the specified accuracy of each other.