diff options
Diffstat (limited to 'docs/Reference/LuaUnitAssertionFunctions/0_GeneralAssertions.md')
-rw-r--r-- | docs/Reference/LuaUnitAssertionFunctions/0_GeneralAssertions.md | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/docs/Reference/LuaUnitAssertionFunctions/0_GeneralAssertions.md b/docs/Reference/LuaUnitAssertionFunctions/0_GeneralAssertions.md new file mode 100644 index 0000000..6282755 --- /dev/null +++ b/docs/Reference/LuaUnitAssertionFunctions/0_GeneralAssertions.md @@ -0,0 +1,63 @@ +# General Assertions + +* **_AFT.assertEquals(actual, expected)** + + Assert that two values are equal. + + For tables, the comparison is a deep comparison : + + * number of elements must be the same + * tables must contain the same keys + * each key must contain the same values. The values are also compared recursively with deep comparison. + + LuaUnit provides other table-related assertions, see [Table assertions](http://luaunit.readthedocs.io/en/luaunit_v3_2_1/#assert-table) + + ```lua + _AFT.assertEquals("string", "string") + ``` + +* **_AFT.assertNotEquals(actual, expected)** + + Assert that two values are different. The assertion fails if the two values are identical. + + It also uses table deep comparison. + + ```lua + _AFT.assertNotEquals("string", "Another string") + ``` + +* **_AFT.assertAlmostEquals(actual, expected, margin)** + + Assert that two floating point numbers are almost equal. + + When comparing floating point numbers, strict equality does not work. + Computer arithmetic is so that an operation that mathematically yields + 1.00000000 might yield 0.999999999999 in lua . That’s why you need an + almost equals comparison, where you specify the error margin. + + ```lua + -- convert pi/6 radian to 30 degree + pi_div_6_deg_calculated = math.deg(math.pi/6) + pi_div_6_deg_expected = 30 + + -- convert pi/3 radian to 60 degree + pi_div_3_deg_calculated = math.deg(math.pi/3) + pi_div_3_deg_expected = 60 + + -- check absolute error: it is not constant + print( (pi_div_6_deg_expected - pi_div_6_deg_calculated) / lu.EPS ) -- prints: 16 + print( (pi_div_3_deg_expected - pi_div_3_deg_calculated) / lu.EPS ) -- prints: 32 + + -- Better use relative error: + print( ( (pi_div_6_deg_expected - pi_div_6_deg_calculated) / pi_div_6_deg_expected) / lu.EPS ) -- prints: 0.53333 + print( ( (pi_div_3_deg_expected - pi_div_3_deg_calculated) / pi_div_3_deg_expected) / lu.EPS ) -- prints: 0.53333 + + -- relative error is constant. Assertion can take the form of: + assertAlmostEquals( (pi_div_6_deg_expected - pi_div_6_deg_calculated) / pi_div_6_deg_expected, lu.EPS ) + assertAlmostEquals( (pi_div_3_deg_expected - pi_div_3_deg_calculated) / pi_div_3_deg_expected, lu.EPS ) + ``` + +* **_AFT.assertNotAlmostEquals(actual, expected, margin)** + + Assert that two floating point numbers are not almost equal. +
\ No newline at end of file |