71 lines
1.8 KiB
Java
71 lines
1.8 KiB
Java
package function.builtin.predicate;
|
|
|
|
import static testutil.TestUtilities.*;
|
|
|
|
import org.junit.Test;
|
|
|
|
import function.ArgumentValidator.*;
|
|
|
|
public class EQUALTester {
|
|
|
|
@Test
|
|
public void testEqualWithTwoEqualAtoms() {
|
|
String input = "(equal 'a 'a)";
|
|
|
|
assertSExpressionsMatch(parseString("t"), evaluateString(input));
|
|
}
|
|
|
|
@Test
|
|
public void testEqualWithTwoUnequalAtoms() {
|
|
String input = "(equal 'a 'b)";
|
|
|
|
assertSExpressionsMatch(parseString("nil"), evaluateString(input));
|
|
}
|
|
|
|
@Test
|
|
public void testEqualWithAtomAndList() {
|
|
String input = "(equal \"string\" '(m i k e))";
|
|
|
|
assertSExpressionsMatch(parseString("nil"), evaluateString(input));
|
|
}
|
|
|
|
@Test
|
|
public void testEqualWithListAndAtom() {
|
|
String input = "(equal '(m i k e) \"string\")";
|
|
|
|
assertSExpressionsMatch(parseString("nil"), evaluateString(input));
|
|
}
|
|
|
|
@Test
|
|
public void testEqualWithTwoEqualLists() {
|
|
String input = "(equal '(1 2 3) '(1 2 3))";
|
|
|
|
assertSExpressionsMatch(parseString("t"), evaluateString(input));
|
|
}
|
|
|
|
@Test
|
|
public void testEqualWithTwoUnequalLists() {
|
|
String input = "(equal '(1 2 3) '(1 3 3))";
|
|
|
|
assertSExpressionsMatch(parseString("nil"), evaluateString(input));
|
|
}
|
|
|
|
@Test
|
|
public void testEqualWithTwoEqualNestedLists() {
|
|
String input = "(equal '(1 ((2) 3)) '(1 ((2) 3)))";
|
|
|
|
assertSExpressionsMatch(parseString("t"), evaluateString(input));
|
|
}
|
|
|
|
@Test(expected = TooManyArgumentsException.class)
|
|
public void testEqualWithTooManyArguments() {
|
|
evaluateString("(equal 1 2 3)");
|
|
}
|
|
|
|
@Test(expected = TooFewArgumentsException.class)
|
|
public void testEqualWithTooFewArguments() {
|
|
evaluateString("(equal 1)");
|
|
}
|
|
|
|
}
|