Make testEvaluate more compact

(cherry picked from commit b9ba337f38205c79ae70e689d2a6db60f90acc9d)
This commit is contained in:
Octavia Togami 2020-02-23 20:38:25 -05:00 committed by MattBDev
parent 8d065d767d
commit cd1948648c
2 changed files with 49 additions and 11 deletions

View File

@ -55,17 +55,7 @@ class ExpressionTest extends BaseExpressionTest {
testCase("0 || 5", 5),
testCase("2 || 5", 2),
testCase("2 && 5", 5),
testCase("5 && 0", 0),
// check ternaries
testCase("false ? 1 : 2", 2),
testCase("true ? 1 : 2", 1),
// - ternary binds inside
testCase("true ? true ? 1 : 2 : 3", 1),
testCase("true ? false ? 1 : 2 : 3", 2),
testCase("false ? true ? 1 : 2 : 3", 3),
testCase("false ? false ? 1 : 2 : 3", 3),
// check return
testCase("return 1; 0", 1)
testCase("5 && 0", 0)
);
return testCases.stream()
.map(testCase -> DynamicTest.dynamicTest(

View File

@ -0,0 +1,48 @@
/*
* WorldEdit, a Minecraft world manipulation toolkit
* Copyright (C) sk89q <http://www.sk89q.com>
* Copyright (C) WorldEdit team and contributors
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.sk89q.worldedit.internal.expression;
public class ExpressionTestCase {
public static ExpressionTestCase testCase(String expression, double result) {
return new ExpressionTestCase(expression, result);
}
private final String expression;
private final double result;
private ExpressionTestCase(String expression, double result) {
this.expression = expression;
this.result = result;
}
public String getExpression() {
return expression;
}
public double getResult() {
return result;
}
@Override
public String toString() {
return expression + " -> " + result;
}
}