package test.ql.evaluator.relational;
import java.util.Arrays;
import java.util.Collection;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import ql.Value;
import ql.value.BooleanValue;
import ql.value.UndefinedValue;
import test.ql.evaluator.BaseTest;
@RunWith(value = Parameterized.class)
public class TestEqual extends BaseTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ "true == false", new BooleanValue(false) },
{ "false == true", new BooleanValue(false) },
{ "false == false", new BooleanValue(true) },
{ "true == true", new BooleanValue(true) },
{ "booleanQuestion == false", new BooleanValue(false) },
{ "false == booleanQuestion", new BooleanValue(false) },
{ "true == booleanQuestion", new BooleanValue(true) },
{ "5 == 5", new BooleanValue(true) },
{ "5 == 7", new BooleanValue(false) },
{ "integerQuestion == 10", new BooleanValue(true) },
{ "integerQuestion == 5", new BooleanValue(false) },
{ "10 == integerQuestion", new BooleanValue(true) },
{ "5 == integerQuestion", new BooleanValue(false) },
{ "5.0 == 5.0", new BooleanValue(true) },
{ "5.0 == 7.0", new BooleanValue(false) },
{ "floatQuestion == 10.5", new BooleanValue(true) },
{ "floatQuestion == 5.5", new BooleanValue(false) },
{ "10.5 == floatQuestion", new BooleanValue(true) },
{ "5.5 == floatQuestion", new BooleanValue(false) },
{ "5 == 5.0", new BooleanValue(true) },
{ "5 == 7.0", new BooleanValue(false) },
{ "integerQuestion == 10.0", new BooleanValue(true) },
{ "integerQuestion == 5.0", new BooleanValue(false) },
{ "10.0 == integerQuestion", new BooleanValue(true) },
{ "5.0 == integerQuestion", new BooleanValue(false) },
{ "5.0 == 5", new BooleanValue(true) },
{ "5.0 == 7", new BooleanValue(false) },
{ "floatQuestion == 10", new BooleanValue(false) },
{ "10 == floatQuestion", new BooleanValue(false) },
{ "\"Bob\" == \"Bob\"", new BooleanValue(true) },
{ "\"Bob\" == \"Fred\"", new BooleanValue(false) },
{ "stringQuestion == \"A string\"", new BooleanValue(true) },
{ "\"A string\" == stringQuestion", new BooleanValue(true) },
{ "undefinedQuestion == 10.5", new UndefinedValue() },
{ "10.5 == undefinedQuestion", new UndefinedValue() },
{ "undefinedQuestion == 10", new UndefinedValue() },
{ "10 == undefinedQuestion", new UndefinedValue() },
{ "undefinedQuestion == \"A string\"", new UndefinedValue() },
{ "\"A string\" == undefinedQuestion", new UndefinedValue() },
});
}
public TestEqual(String input, Value expected) {
super(input, expected);
}
}