package function.builtin.predicate; import static testutil.TestUtilities.*; import org.junit.Test; import function.ArgumentValidator.*; public class LESSPTester { @Test public void testLesspWithOneNumber_ReturnsT() { String input = "(< 1)"; assertSExpressionsMatch(parseString("t"), evaluateString(input)); } @Test public void testLesspWithTwoNumbers_ReturnsNil() { String input = "(< 2 1)"; assertSExpressionsMatch(parseString("nil"), evaluateString(input)); } @Test public void testLesspWithTwoNumbers_ReturnsT() { String input = "(< 2 3)"; assertSExpressionsMatch(parseString("t"), evaluateString(input)); } @Test public void testLesspWithManyNumbers_ReturnsNil() { String input = "(< 4 3 2 5 1)"; assertSExpressionsMatch(parseString("nil"), evaluateString(input)); } @Test public void testLesspWithManyNumbers_ReturnsT() { String input = "(< 0 1 2 3 4)"; assertSExpressionsMatch(parseString("t"), evaluateString(input)); } @Test(expected = BadArgumentTypeException.class) public void testLesspWithNonNumbers() { evaluateString("(< '(1) '(2))"); } @Test(expected = TooFewArgumentsException.class) public void testLesspWithTooFewArguments() { evaluateString("(<)"); } }