You are here

public function CtoolsMathExpressionTestCase::testVariables in Chaos Tool Suite (ctools) 7

Test variable handling.

File

tests/math_expression.test, line 221

Class

CtoolsMathExpressionTestCase
Tests the MathExpression library of ctools.

Code

public function testVariables() {
  $math_expr = new ctools_math_expr();

  // We should have a definition of pi:
  $this
    ->assertFloat(pi(), $math_expr
    ->evaluate('pi'));

  // And a definition of e:
  $this
    ->assertFloat(exp(1), $math_expr
    ->evaluate('e'));
  $number_a = 5;
  $number_b = 10;

  // Store the first number and use it on a calculation.
  $math_expr
    ->evaluate("var = {$number_a}");
  $this
    ->assertEqual($number_a + $number_b, $math_expr
    ->evaluate("var + {$number_b}"));

  // Change the value and check the new value is used.
  $math_expr
    ->evaluate("var = {$number_b}");
  $this
    ->assertEqual($number_b + $number_b, $math_expr
    ->evaluate("var + {$number_b}"), "var + {$number_b}");

  // Store another number and use it on a calculation.
  $math_expr
    ->evaluate("var = {$number_a}");
  $math_expr
    ->evaluate("newvar = {$number_a}");
  $this
    ->assertEqual($number_a + $number_a, $math_expr
    ->evaluate('var + newvar'), 'var + newvar');
  $this
    ->assertFloat($number_a / $number_b, $math_expr
    ->evaluate("var / {$number_b}"), "var / {$number_b}");
}