Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bd63286

Browse files
committed
feat: add assert float equals
1 parent 5114b2a commit bd63286

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/Asserts.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
trait Asserts
1515
{
16+
const DEFAULT_PRECISION = 6;
17+
1618
public function assertJsonSubset($expected, $actual, string $message = null)
1719
{
1820
$actual = \json_encode($actual);
@@ -31,4 +33,20 @@ public function assertJsonSubsets($expected, /* more expected ...*/ $actual)
3133
$this->assertJsonSubset($expect, $actual, "Data set #$i: ");
3234
}
3335
}
36+
37+
public function assertFloatEquals(float $expected, float $actual, int $precision = null, string $message = null)
38+
{
39+
$precision = $precision ?? static::DEFAULT_PRECISION;
40+
41+
if (\function_exists('bccomp')) {
42+
$this->assertSame(0, \bccomp($expected, $actual, $precision), $message);
43+
44+
return;
45+
}
46+
47+
$expected = \round($expected, $precision);
48+
$actual = \round($actual, $precision);
49+
50+
$this->assertEquals($expected, $actual, $message, \pow(10, 0 - \abs($precision)));
51+
}
3452
}

0 commit comments

Comments
 (0)