19use PHPUnit\Framework\TestCase;
20use SebastianBergmann\Diff\Differ;
21use SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder;
36 protected function setUp(): void
53 $differ =
new Differ(
new UnifiedDiffOutputBuilder(
"\n--- Expected\n+++ Actual\n"));
56 $this->assertTrue($actual == $expected, $differ->diff($actual, $expected));
59 #[\PHPUnit\Framework\Attributes\DataProvider('addData')]
60 public function testAdd(
string $a,
string $b,
string $result,
int $scale): void
65 #[\PHPUnit\Framework\Attributes\DataProvider('subData')]
66 public function testSub(
string $a,
string $b,
string $result,
int $scale): void
71 #[\PHPUnit\Framework\Attributes\DataProvider('mulData')]
72 public function testMul(
string $a,
string $b,
string $result,
int $scale): void
77 #[\PHPUnit\Framework\Attributes\DataProvider('divData')]
78 public function testDiv(
string $a,
string $b,
string $result,
int $scale): void
83 #[\PHPUnit\Framework\Attributes\DataProvider('sqrtData')]
84 public function testSqrt(
string $a,
string $result, ?
int $scale): void
89 #[\PHPUnit\Framework\Attributes\DataProvider('powData')]
90 public function testPow(
string $a,
string $b,
string $result, ?
int $scale): void
98 #[\PHPUnit\Framework\Attributes\DataProvider('modData')]
99 public function testMod(
string $a,
string $b,
string $result): void
104 #[\PHPUnit\Framework\Attributes\DataProvider('equalsData')]
105 public function testEquals(
string $a,
string $b,
bool $result, ?
int $scale): void
110 #[\PHPUnit\Framework\Attributes\DataProvider('calcData')]
113 $this->
assertEqualNumbers($result, ilMath::_applyScale($this->evalMath->evaluate($formula), $scale));
121 $this->expectException(ilMathDivisionByZeroException::class);
123 $this->mathAdapter->div(1, 0);
131 $this->expectException(ilMathDivisionByZeroException::class);
133 $this->mathAdapter->mod(1, 0);
198 [
'12345678901234567890',
'3513641828',
null],
199 [
'12345678901234567890',
'3513641828.82', 2]
219 [
'3',
'3',
true,
null],
220 [
'27.424',
'27.424',
true, 5]
234 [
'13/60',
'0.2166666666666', 13],
237 [
'(-(-41)-sqrt((-41)^2-4*(1)*(5)))/(2*(1))',
'0.122', 3],
238 [
'(-(-41)+sqrt((-41)^2-4*(1)*(5)))/(2*(1))',
'40.877', 3],
testSub(string $a, string $b, string $result, int $scale)
testDiv(string $a, string $b, string $result, int $scale)
testSqrt(string $a, string $result, ?int $scale)
testAdd(string $a, string $b, string $result, int $scale)
testEquals(string $a, string $b, bool $result, ?int $scale)
assertEqualNumbers(string $actual, string $expected)
This method is used as a 'Comparator' for two numeric strings and is equal to the ScalarComparator be...
testMod(string $a, string $b, string $result)
ilMathAdapter $mathAdapter
testMul(string $a, string $b, string $result, int $scale)
testPow(string $a, string $b, string $result, ?int $scale)
testCalculation(string $formula, string $result, int $scale)
static setDefaultAdapter(ilMathAdapter $adapter)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples