diff options
Diffstat (limited to 'extensions/ParserFunctions/testExpr.php')
-rw-r--r-- | extensions/ParserFunctions/testExpr.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/extensions/ParserFunctions/testExpr.php b/extensions/ParserFunctions/testExpr.php new file mode 100644 index 00000000..4a941737 --- /dev/null +++ b/extensions/ParserFunctions/testExpr.php @@ -0,0 +1,38 @@ +<?php + +require_once ( getenv( 'MW_INSTALL_PATH' ) !== false + ? getenv( 'MW_INSTALL_PATH' ) . "/maintenance/commandLine.inc" + : dirname( __FILE__ ) . '/../../maintenance/commandLine.inc' ); +require( 'Expr.php' ); + +$tests = file( 'exprTests.txt' ); + +$pass = $fail = 0; + +// Each test is on one line. The test must always evaluate to '1'. +$parser = new ExprParser; +foreach ( $tests as $test ) { + $test = trim( $test ); + if ( in_string( ';', $test ) ) + list( $input, $expected ) = explode( ';', $test ); + else { + $input = $test; + $expected = 1; + } + + $expected = trim( $expected ); + $input = trim( $input ); + + $result = $parser->doExpression( $input ); + if ( $result != $expected ) { + print + "FAILING test -- $input + gave a final result of $result, instead of $expected.\n"; + $fail++; + } else { + print "PASSED test $test\n"; + $pass++; + } +} + +print "Passed $pass tests, failed $fail tests, out of a total of " . ( $pass + $fail ) . "\n";
\ No newline at end of file |