ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilMathBaseAdapterTestCase Class Reference
+ Inheritance diagram for ilMathBaseAdapterTestCase:
+ Collaboration diagram for ilMathBaseAdapterTestCase:

Public Member Functions

 testAdd (string $a, string $b, string $result, int $scale)
 
 testSub (string $a, string $b, string $result, int $scale)
 
 testMul (string $a, string $b, string $result, int $scale)
 
 testDiv (string $a, string $b, string $result, int $scale)
 
 testSqrt (string $a, string $result, ?int $scale)
 
 testPow (string $a, string $b, string $result, ?int $scale)
 
 testMod (string $a, string $b, string $result)
 
 testEquals (string $a, string $b, bool $result, ?int $scale)
 
 testCalculation (string $formula, string $result, int $scale)
 
 testDivisionsByZero ()
 
 testModuloByZero ()
 

Static Public Member Functions

static addData ()
 
static subData ()
 
static mulData ()
 
static divData ()
 
static modData ()
 
static sqrtData ()
 
static powData ()
 
static equalsData ()
 
static calcData ()
 

Protected Member Functions

 setUp ()
 @inheritDoc More...
 

Protected Attributes

const DEFAULT_SCALE = 50
 
ilMathAdapter $mathAdapter
 
EvalMath $evalMath
 

Private Member Functions

 assertEqualNumbers (string $actual, string $expected)
 This method is used as a 'Comparator' for two numeric strings and is equal to the ScalarComparator behaviour of PHPUnit 5.x In PHPUnit 8 the ScalarComparators uses a strict string comparison, so numbers with a different amount of trailing 0 decimals are not equal anymore. More...
 

Detailed Description

Author
Michael Jansen mjans.nosp@m.en@d.nosp@m.ataba.nosp@m.y.de

Definition at line 26 of file ilMathBaseAdapterTestCase.php.

Member Function Documentation

◆ addData()

static ilMathBaseAdapterTestCase::addData ( )
static
Returns
array

Definition at line 139 of file ilMathBaseAdapterTestCase.php.

139 : array
140 {
141 return [
142 ['1', '2', '3', self::DEFAULT_SCALE]
143 ];
144 }

References DEFAULT_SCALE.

◆ assertEqualNumbers()

ilMathBaseAdapterTestCase::assertEqualNumbers ( string  $actual,
string  $expected 
)
private

This method is used as a 'Comparator' for two numeric strings and is equal to the ScalarComparator behaviour of PHPUnit 5.x In PHPUnit 8 the ScalarComparators uses a strict string comparison, so numbers with a different amount of trailing 0 decimals are not equal anymore.

See also
\SebastianBergmann\Comparator\ScalarComparator
Parameters
string$actual
string$expected

@noinspection PhpUnitTestsInspection

Definition at line 51 of file ilMathBaseAdapterTestCase.php.

51 : void
52 {
53 $differ = new Differ(new UnifiedDiffOutputBuilder("\n--- Expected\n+++ Actual\n"));
54
56 $this->assertTrue($actual == $expected, $differ->diff($actual, $expected));
57 }

Referenced by testAdd(), testCalculation(), testDiv(), testEquals(), testMod(), testMul(), testPow(), testSqrt(), and testSub().

+ Here is the caller graph for this function:

◆ calcData()

static ilMathBaseAdapterTestCase::calcData ( )
static

Definition at line 227 of file ilMathBaseAdapterTestCase.php.

227 : array
228 {
229 return [
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]
241 ];
242 }

References DEFAULT_SCALE.

◆ divData()

static ilMathBaseAdapterTestCase::divData ( )
static
Returns
array

Definition at line 171 of file ilMathBaseAdapterTestCase.php.

171 : array
172 {
173 return [
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],
177 ];
178 }

References DEFAULT_SCALE.

◆ equalsData()

static ilMathBaseAdapterTestCase::equalsData ( )
static
Returns
array

Definition at line 216 of file ilMathBaseAdapterTestCase.php.

216 : array
217 {
218 return [
219 ['3', '3', true, null],
220 ['27.424', '27.424', true, 5]
221 ];
222 }

◆ modData()

static ilMathBaseAdapterTestCase::modData ( )
static
Returns
array

Definition at line 183 of file ilMathBaseAdapterTestCase.php.

183 : array
184 {
185 return [
186 ['1', '2', '1']
187 ];
188 }

◆ mulData()

static ilMathBaseAdapterTestCase::mulData ( )
static
Returns
array

Definition at line 159 of file ilMathBaseAdapterTestCase.php.

159 : array
160 {
161 return [
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]
165 ];
166 }

References DEFAULT_SCALE.

◆ powData()

static ilMathBaseAdapterTestCase::powData ( )
static
Returns
array

Reimplemented in ilMathBCAdapterTest.

Definition at line 206 of file ilMathBaseAdapterTestCase.php.

206 : array
207 {
208 return [
209 ['3', '2', '9', self::DEFAULT_SCALE]
210 ];
211 }

References DEFAULT_SCALE.

◆ setUp()

ilMathBaseAdapterTestCase::setUp ( )
protected

@inheritDoc

Reimplemented in ilMathBCAdapterTest, and ilMathPhpAdapterTest.

Definition at line 36 of file ilMathBaseAdapterTestCase.php.

36 : void
37 {
38 ilMath::setDefaultAdapter($this->mathAdapter);
39 $this->evalMath = new EvalMath();
40 parent::setUp();
41 }
static setDefaultAdapter(ilMathAdapter $adapter)

References ilMath\setDefaultAdapter().

+ Here is the call graph for this function:

◆ sqrtData()

static ilMathBaseAdapterTestCase::sqrtData ( )
static
Returns
array

Definition at line 193 of file ilMathBaseAdapterTestCase.php.

193 : array
194 {
195 return [
196 ['9', '3', self::DEFAULT_SCALE],
197 ['4294967296', '65536', self::DEFAULT_SCALE],
198 ['12345678901234567890', '3513641828', null],
199 ['12345678901234567890', '3513641828.82', 2]
200 ];
201 }

References DEFAULT_SCALE.

◆ subData()

static ilMathBaseAdapterTestCase::subData ( )
static
Returns
array

Definition at line 149 of file ilMathBaseAdapterTestCase.php.

149 : array
150 {
151 return [
152 ['1', '2', '-1', self::DEFAULT_SCALE]
153 ];
154 }

References DEFAULT_SCALE.

◆ testAdd()

ilMathBaseAdapterTestCase::testAdd ( string  $a,
string  $b,
string  $result,
int  $scale 
)

Definition at line 60 of file ilMathBaseAdapterTestCase.php.

60 : void
61 {
62 $this->assertEqualNumbers($result, $this->mathAdapter->add($a, $b, $scale));
63 }
assertEqualNumbers(string $actual, string $expected)
This method is used as a 'Comparator' for two numeric strings and is equal to the ScalarComparator be...
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples

References Vendor\Package\$a, Vendor\Package\$b, and assertEqualNumbers().

+ Here is the call graph for this function:

◆ testCalculation()

ilMathBaseAdapterTestCase::testCalculation ( string  $formula,
string  $result,
int  $scale 
)

Definition at line 111 of file ilMathBaseAdapterTestCase.php.

111 : void
112 {
113 $this->assertEqualNumbers($result, ilMath::_applyScale($this->evalMath->evaluate($formula), $scale));
114 }

References assertEqualNumbers().

+ Here is the call graph for this function:

◆ testDiv()

ilMathBaseAdapterTestCase::testDiv ( string  $a,
string  $b,
string  $result,
int  $scale 
)

Definition at line 78 of file ilMathBaseAdapterTestCase.php.

78 : void
79 {
80 $this->assertEqualNumbers($result, $this->mathAdapter->div($a, $b, $scale));
81 }

References Vendor\Package\$a, Vendor\Package\$b, and assertEqualNumbers().

+ Here is the call graph for this function:

◆ testDivisionsByZero()

ilMathBaseAdapterTestCase::testDivisionsByZero ( )

Definition at line 119 of file ilMathBaseAdapterTestCase.php.

119 : void
120 {
121 $this->expectException(ilMathDivisionByZeroException::class);
122
123 $this->mathAdapter->div(1, 0);
124 }

◆ testEquals()

ilMathBaseAdapterTestCase::testEquals ( string  $a,
string  $b,
bool  $result,
?int  $scale 
)

Definition at line 105 of file ilMathBaseAdapterTestCase.php.

105 : void
106 {
107 $this->assertEqualNumbers($result, $this->mathAdapter->equals($a, $b, $scale));
108 }

References Vendor\Package\$a, Vendor\Package\$b, and assertEqualNumbers().

+ Here is the call graph for this function:

◆ testMod()

ilMathBaseAdapterTestCase::testMod ( string  $a,
string  $b,
string  $result 
)
Exceptions
ilMathDivisionByZeroException

Definition at line 99 of file ilMathBaseAdapterTestCase.php.

99 : void
100 {
101 $this->assertEqualNumbers($result, $this->mathAdapter->mod($a, $b));
102 }

References Vendor\Package\$a, Vendor\Package\$b, and assertEqualNumbers().

+ Here is the call graph for this function:

◆ testModuloByZero()

ilMathBaseAdapterTestCase::testModuloByZero ( )

Definition at line 129 of file ilMathBaseAdapterTestCase.php.

129 : void
130 {
131 $this->expectException(ilMathDivisionByZeroException::class);
132
133 $this->mathAdapter->mod(1, 0);
134 }

◆ testMul()

ilMathBaseAdapterTestCase::testMul ( string  $a,
string  $b,
string  $result,
int  $scale 
)

Definition at line 72 of file ilMathBaseAdapterTestCase.php.

72 : void
73 {
74 $this->assertEqualNumbers($result, $this->mathAdapter->mul($a, $b, $scale));
75 }

References Vendor\Package\$a, Vendor\Package\$b, and assertEqualNumbers().

+ Here is the call graph for this function:

◆ testPow()

ilMathBaseAdapterTestCase::testPow ( string  $a,
string  $b,
string  $result,
?int  $scale 
)

Definition at line 90 of file ilMathBaseAdapterTestCase.php.

90 : void
91 {
92 $this->assertEqualNumbers($result, $this->mathAdapter->pow($a, $b, $scale));
93 }

References Vendor\Package\$a, Vendor\Package\$b, and assertEqualNumbers().

+ Here is the call graph for this function:

◆ testSqrt()

ilMathBaseAdapterTestCase::testSqrt ( string  $a,
string  $result,
?int  $scale 
)

Definition at line 84 of file ilMathBaseAdapterTestCase.php.

84 : void
85 {
86 $this->assertEqualNumbers($result, $this->mathAdapter->sqrt($a, $scale));
87 }

References Vendor\Package\$a, and assertEqualNumbers().

+ Here is the call graph for this function:

◆ testSub()

ilMathBaseAdapterTestCase::testSub ( string  $a,
string  $b,
string  $result,
int  $scale 
)

Definition at line 66 of file ilMathBaseAdapterTestCase.php.

66 : void
67 {
68 $this->assertEqualNumbers($result, $this->mathAdapter->sub($a, $b, $scale));
69 }

References Vendor\Package\$a, Vendor\Package\$b, and assertEqualNumbers().

+ Here is the call graph for this function:

Field Documentation

◆ $evalMath

EvalMath ilMathBaseAdapterTestCase::$evalMath
protected

Definition at line 31 of file ilMathBaseAdapterTestCase.php.

◆ $mathAdapter

ilMathAdapter ilMathBaseAdapterTestCase::$mathAdapter
protected

Definition at line 30 of file ilMathBaseAdapterTestCase.php.

◆ DEFAULT_SCALE

const ilMathBaseAdapterTestCase::DEFAULT_SCALE = 50
protected

The documentation for this class was generated from the following file: