mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
Merge branch 'MDL-75464-master' of https://github.com/meirzamoodle/moodle
This commit is contained in:
commit
95c5001ddb
4 changed files with 115 additions and 7 deletions
|
@ -317,4 +317,93 @@ class mathslib_test extends \basic_testcase {
|
|||
$result = $formula->evaluate();
|
||||
$this->assertTrue(is_float($result));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the modulo operator.
|
||||
*
|
||||
* @covers calc_formula::evaluate
|
||||
* @dataProvider moduloOperatorData
|
||||
*
|
||||
* @param string $formula
|
||||
* @param array $values
|
||||
* @param int|float $expectedResult
|
||||
*/
|
||||
public function shouldSupportModuloOperator($formula, $values, $expectedResult)
|
||||
{
|
||||
$formula = new calc_formula($formula);
|
||||
$formula->set_params($values);
|
||||
$this->assertEquals($expectedResult, $formula->evaluate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for shouldSupportModuloOperator
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function moduloOperatorData() {
|
||||
return array(
|
||||
array(
|
||||
'=a%b', // 9%3 => 0
|
||||
array('a' => 9, 'b' => 3),
|
||||
0
|
||||
),
|
||||
array(
|
||||
'=a%b', // 10%3 => 1
|
||||
array('a' => 10, 'b' => 3),
|
||||
1
|
||||
),
|
||||
array(
|
||||
'=10-a%(b+c*d)', // 10-10%(7-2*2) => 9
|
||||
array('a' => '10', 'b' => 7, 'c' => -2, 'd' => 2),
|
||||
9
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the double minus as plus.
|
||||
*
|
||||
* @covers calc_formula::evaluate
|
||||
* @dataProvider doubleMinusData
|
||||
*
|
||||
* @param string $formula
|
||||
* @param array $values
|
||||
* @param int|float $expectedResult
|
||||
*/
|
||||
public function shouldConsiderDoubleMinusAsPlus($formula, $values, $expectedResult)
|
||||
{
|
||||
$formula = new calc_formula($formula);
|
||||
$formula->set_params($values);
|
||||
$this->assertEquals($expectedResult, $formula->evaluate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for shouldConsiderDoubleMinusAsPlus
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function doubleMinusData() {
|
||||
return array(
|
||||
array(
|
||||
'=a+b*c--d', // 1+2*3--4 => 1+6+4 => 11
|
||||
array(
|
||||
'a' => 1,
|
||||
'b' => 2,
|
||||
'c' => 3,
|
||||
'd' => 4
|
||||
),
|
||||
11
|
||||
),
|
||||
array(
|
||||
'=a+b*c--d', // 1+2*3---4 => 1+6-4 => 3
|
||||
array(
|
||||
'a' => 1,
|
||||
'b' => 2,
|
||||
'c' => 3,
|
||||
'd' => -4
|
||||
),
|
||||
3
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue