# 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.