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',
'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),

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() {