summaryrefslogtreecommitdiff
path: root/extensions/ParserFunctions/testExpr.php
blob: b3336c53e2c2e65c623bf8e1a59a9e6beef882bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 ( strpos( $test, ';' ) !== false )
		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";