Permalink
Browse files

MDL-29173 grade: altered the definiton of round() in /lib/evalmath/ev…

…almath.class.php
  • Loading branch information...
1 parent 4631e39 commit eb9f06f9c15e29342b0bbb460058814b44826ccb @andyjdavis andyjdavis committed May 20, 2012
Showing with 18 additions and 1 deletion.
  1. +1 −1 lib/evalmath/evalmath.class.php
  2. +17 −0 lib/tests/mathslib_test.php
@@ -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),
@@ -142,6 +142,10 @@ public function test__error_handling() {
}
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 @@ public function test_rounding_function() {
$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() {

0 comments on commit eb9f06f

Please sign in to comment.