function CtoolsMathExpressionTestCase::assertFloat
A custom assertion with checks the values in a certain range.
Parameters
float $first: A value to check for equality.
float $second: A value to check for equality.
string $message: The message describing the correct behaviour, eg. "2/4 equals 1/2". The default message is used if this value is empty.
float $delta: The precision with which values must match. This accounts for rounding errors and imprecise representation errors in the floating point format. The value passed in should ideally be proportional to the values being compared.
string $group: Which group this assert belongs to.
Return value
bool TRUE if the assertion was correct (that is, $first == $second within the given limits), FALSE otherwise.
3 calls to CtoolsMathExpressionTestCase::assertFloat()
- CtoolsMathExpressionTestCase::testArithmetic in tests/
math_expression.test - Test some arithmetic handling.
- CtoolsMathExpressionTestCase::testBuildInFunctions in tests/
math_expression.test - Test various built-in transcendental and extended functions.
- CtoolsMathExpressionTestCase::testVariables in tests/
math_expression.test - Test variable handling.
File
-
tests/
math_expression.test, line 78
Class
- CtoolsMathExpressionTestCase
- Tests the MathExpression library of ctools.
Code
protected function assertFloat($first, $second, $message = '', $delta = 1.0E-8, $group = 'Other') {
// Check for NaN and Inf because the abs() and sign() code won't like those.
$equal = FALSE || is_infinite($first) && is_infinite($second) || is_nan($first) && is_nan($second) || abs($first - $second) <= $delta && self::sign($first) === self::sign($second);
if (empty($message)) {
$default = t('Value !first is equal to value !second.', array(
'!first' => var_export($first, TRUE),
'!second' => var_export($second, TRUE),
));
$message = $default;
}
return $this->assert($equal, $message, $group);
}