ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
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 ()
 

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  }

◆ 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
Parameters
string$actual
string$expected

PhpUnitTestsInspection

Definition at line 51 of file ilMathBaseAdapterTestCase.php.

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

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  }
+ 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  }

◆ 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  }

◆ equalsData()

static ilMathBaseAdapterTestCase::equalsData ( )
static
Returns
array

Definition at line 216 of file ilMathBaseAdapterTestCase.php.

References null.

216  : array
217  {
218  return [
219  ['3', '3', true, null],
220  ['27.424', '27.424', true, 5]
221  ];
222  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null

◆ 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  }

◆ powData()

static ilMathBaseAdapterTestCase::powData ( )
static
Returns
array

Definition at line 206 of file ilMathBaseAdapterTestCase.php.

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

◆ setUp()

ilMathBaseAdapterTestCase::setUp ( )
protected

Definition at line 36 of file ilMathBaseAdapterTestCase.php.

References ilMath\setDefaultAdapter().

36  : void
37  {
38  ilMath::setDefaultAdapter($this->mathAdapter);
39  $this->evalMath = new EvalMath();
40  parent::setUp();
41  }
static setDefaultAdapter(ilMathAdapter $adapter)
+ Here is the call graph for this function:

◆ sqrtData()

static ilMathBaseAdapterTestCase::sqrtData ( )
static
Returns
array

Definition at line 193 of file ilMathBaseAdapterTestCase.php.

References null.

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  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null

◆ 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  }

◆ testAdd()

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

Definition at line 60 of file ilMathBaseAdapterTestCase.php.

References assertEqualNumbers().

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
+ 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.

References assertEqualNumbers().

111  : void
112  {
113  $this->assertEqualNumbers($result, ilMath::_applyScale($this->evalMath->evaluate($formula), $scale));
114  }
assertEqualNumbers(string $actual, string $expected)
This method is used as a 'Comparator' for two numeric strings and is equal to the ScalarComparator be...
+ 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.

References assertEqualNumbers().

78  : void
79  {
80  $this->assertEqualNumbers($result, $this->mathAdapter->div($a, $b, $scale));
81  }
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
+ 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.

References assertEqualNumbers().

105  : void
106  {
107  $this->assertEqualNumbers($result, $this->mathAdapter->equals($a, $b, $scale));
108  }
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
+ 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.

References assertEqualNumbers().

99  : void
100  {
101  $this->assertEqualNumbers($result, $this->mathAdapter->mod($a, $b));
102  }
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
+ 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.

References assertEqualNumbers().

72  : void
73  {
74  $this->assertEqualNumbers($result, $this->mathAdapter->mul($a, $b, $scale));
75  }
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
+ 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.

References assertEqualNumbers().

90  : void
91  {
92  $this->assertEqualNumbers($result, $this->mathAdapter->pow($a, $b, $scale));
93  }
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
+ 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.

References assertEqualNumbers().

84  : void
85  {
86  $this->assertEqualNumbers($result, $this->mathAdapter->sqrt($a, $scale));
87  }
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
+ 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.

References assertEqualNumbers().

66  : void
67  {
68  $this->assertEqualNumbers($result, $this->mathAdapter->sub($a, $b, $scale));
69  }
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
+ 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

Definition at line 28 of file ilMathBaseAdapterTestCase.php.


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