Floating point test assertion - why do these "identical" arrays fail?

php, phpunit

Solution

assertEquals has a $floating_delta argument for this type of cases:

$this->assertEquals($expected_array, $actual_array, '', 0.00001);

PHPUnit docs

Problem

I'm using assertSame() in PHPUnit to compare a database result with expected values. The results are floating point numbers. PHPUnit returns this message (but I can't spot any differences): ``` Failed asserting that Array ( '1_1' => 11.111111111111 '1_2' => 33.333333333333 '1_3' => 55.555555555556 '1_4' => 0.0 '1_5' => null '1_total' => 100.0 ) is identical to Array ( '1_1' => 11.111111111111 '1_2' => 33.333333333333 '1_3' => 55.555555555556 '1_4' => 0.0 '1_5' => null '1_total' => 100.0 ) ``` Why is this failing and what is the correct way to compare an arrays of floating point values?

Original source