allow 4 decimals for rounded rates (#3596)

This commit is contained in:
Kevin Papst
2022-10-24 16:21:57 +02:00
committed by GitHub
parent e5614b92a0
commit 8b4828f236
5 changed files with 47 additions and 17 deletions

View File

@@ -28,16 +28,46 @@ class UtilTest extends TestCase
public function getRateCalculationData()
{
yield [0, 0, 0];
yield [1, 100, 0.03];
yield [1, 100, 0.0278];
yield [1, 900, 0.25];
yield [1, 1800, 0.5];
yield [10000, 1, 2.78];
yield [736, 123.45, 25.15];
yield [736, 123, 25.15];
yield [7360, 1234.99, 2522.84];
yield [7360, 1234, 2522.84];
yield [7360.34, 1234, 2522.96];
yield [7360.01, 1234, 2522.85];
yield [7360.99, 1234, 2523.18];
yield [10000, 1, 2.7778];
yield [736, 123, 25.1467];
yield [7360, 1234, 2522.8444];
yield [7360.34, 1234, 2522.961];
yield [7360.01, 1234, 2522.8479];
yield [7360.99, 1234, 2523.1838];
}
public function testCalculateRateWithRounding()
{
$total = 0.00;
$seconds = 0;
$repeat = 130;
for ($a = 0; $a < $repeat; $a++) {
$inputs = [
900,
1600,
4200,
8763,
3300,
600,
1300,
1837,
4217,
5400,
3283,
600,
];
foreach ($inputs as $i) {
$seconds += $i;
$total += Util::calculateRate(114.75, $i);
}
}
self::assertEquals(36000 * $repeat, $seconds);
self::assertEquals(1147.50 * $repeat, $total);
}
}