MDL-29173 grade: altered the definiton of round() in /lib/evalmath/evalmath.class.php

This commit is contained in:
Andrew Davis
2012-05-29 16:38:42 +07:00
parent 4631e39533
commit eb9f06f9c1
2 changed files with 18 additions and 1 deletions
+1 -1
View File
@@ -107,7 +107,7 @@ class EvalMath {
'sin','sinh','arcsin','asin','arcsinh','asinh',
'cos','cosh','arccos','acos','arccosh','acosh',
'tan','tanh','arctan','atan','arctanh','atanh',
'sqrt','abs','ln','log','exp','floor','ceil','round');
'sqrt','abs','ln','log','exp','floor','ceil');
var $fc = array( // calc functions emulation
'average'=>array(-1), 'max'=>array(-1), 'min'=>array(-1),
+17
View File
@@ -142,6 +142,10 @@ class mathsslib_testcase extends basic_testcase {
}
public function test_rounding_function() {
// Rounding to the default number of decimal places
// The default == 0
$formula = new calc_formula('=round(2.5)');
$this->assertEquals($formula->evaluate(), 3);
@@ -196,6 +200,19 @@ class mathsslib_testcase extends basic_testcase {
$formula = new calc_formula('=floor(-2.5)');
$this->assertEquals($formula->evaluate(), -3);
// Rounding to an explicit number of decimal places
$formula = new calc_formula('=round(2.5, 1)');
$this->assertEquals($formula->evaluate(), 2.5);
$formula = new calc_formula('=round(2.5, 0)');
$this->assertEquals($formula->evaluate(), 3);
$formula = new calc_formula('=round(1.2345, 2)');
$this->assertEquals($formula->evaluate(), 1.23);
$formula = new calc_formula('=round(123.456, -1)');
$this->assertEquals($formula->evaluate(), 120);
}
public function test_scientific_notation() {