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);
142 [
'1',
'2',
'3', self::DEFAULT_SCALE]
152 [
'1',
'2',
'-1', self::DEFAULT_SCALE]
162 'Multiplication with integer operands' => [
'1',
'2',
'2', self::DEFAULT_SCALE],
163 'Multiplication with empty string operand' => [
'1',
'',
'0', self::DEFAULT_SCALE],
164 'Multiplication with decimal operands' => [
'1.5',
'2.5',
'3.75', self::DEFAULT_SCALE]
174 'Division with integer operands' => [
'1',
'2',
'0.5', self::DEFAULT_SCALE],
175 'Division with empty string operand' => [
'',
'2',
'0', self::DEFAULT_SCALE],
176 'Division with decimal operands' => [
'3.75',
'2.5',
'1.5', self::DEFAULT_SCALE],
196 [
'9',
'3', self::DEFAULT_SCALE],
197 [
'4294967296',
'65536', self::DEFAULT_SCALE],
198 [
'12345678901234567890',
'3513641828',
null],
199 [
'12345678901234567890',
'3513641828.82', 2]
209 [
'3',
'2',
'9', self::DEFAULT_SCALE]
219 [
'3',
'3',
true,
null],
220 [
'27.424',
'27.424',
true, 5]
230 [
'3+5',
'8', self::DEFAULT_SCALE],
231 [
'-3+5',
'2', self::DEFAULT_SCALE],
232 [
'3*6+5',
'23', self::DEFAULT_SCALE],
233 [
'10/2',
'5', self::DEFAULT_SCALE],
234 [
'13/60',
'0.2166666666666', 13],
235 [
'(-(-8)-sqrt((-8)^2-4*(7)))/(2)',
'1', self::DEFAULT_SCALE],
236 [
'(-(-8)+sqrt((-8)^2-4*(7)))/(2)',
'7', self::DEFAULT_SCALE],
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],
239 [
'4^2-2*4+0.5*-16',
'0', self::DEFAULT_SCALE],
240 [
'-2^2-2*-2+0.5*-16',
'-8', self::DEFAULT_SCALE]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
testPow(string $a, string $b, string $result, ?int $scale)
testMod(string $a, string $b, string $result)
testSub(string $a, string $b, string $result, int $scale)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
testCalculation(string $formula, string $result, int $scale)
testDiv(string $a, string $b, string $result, int $scale)
testSqrt(string $a, string $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...
testEquals(string $a, string $b, bool $result, ?int $scale)
testAdd(string $a, string $b, string $result, int $scale)
ilMathAdapter $mathAdapter
static setDefaultAdapter(ilMathAdapter $adapter)
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples
testMul(string $a, string $b, string $result, int $scale)