Merge branch 'MDL-29173_calc' of git://github.com/andyjdavis/moodle

This commit is contained in:
Dan Poltawski 2012-06-04 15:55:54 +08:00
commit 6f337ea935
2 changed files with 18 additions and 1 deletions

View file

@ -107,7 +107,7 @@ class EvalMath {
'sin','sinh','arcsin','asin','arcsinh','asinh', 'sin','sinh','arcsin','asin','arcsinh','asinh',
'cos','cosh','arccos','acos','arccosh','acosh', 'cos','cosh','arccos','acos','arccosh','acosh',
'tan','tanh','arctan','atan','arctanh','atanh', '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 var $fc = array( // calc functions emulation
'average'=>array(-1), 'max'=>array(-1), 'min'=>array(-1), 'average'=>array(-1), 'max'=>array(-1), 'min'=>array(-1),

View file

@ -142,6 +142,10 @@ class mathsslib_testcase extends basic_testcase {
} }
public function test_rounding_function() { public function test_rounding_function() {
// Rounding to the default number of decimal places
// The default == 0
$formula = new calc_formula('=round(2.5)'); $formula = new calc_formula('=round(2.5)');
$this->assertEquals($formula->evaluate(), 3); $this->assertEquals($formula->evaluate(), 3);
@ -196,6 +200,19 @@ class mathsslib_testcase extends basic_testcase {
$formula = new calc_formula('=floor(-2.5)'); $formula = new calc_formula('=floor(-2.5)');
$this->assertEquals($formula->evaluate(), -3); $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() { public function test_scientific_notation() {