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(evaluateString(input), parseString("t")); } @Test public void testLesspWithTwoNumbers_ReturnsNil() { String input = "(< 2 1)"; assertSExpressionsMatch(evaluateString(input), parseString("nil")); } @Test public void testLesspWithTwoNumbers_ReturnsT() { String input = "(< 2 3)"; assertSExpressionsMatch(evaluateString(input), parseString("t")); } @Test public void testLesspWithManyNumbers_ReturnsNil() { String input = "(< 4 3 2 5 1)"; assertSExpressionsMatch(evaluateString(input), parseString("nil")); } @Test public void testLesspWithManyNumbers_ReturnsT() { String input = "(< 0 1 2 3 4)"; assertSExpressionsMatch(evaluateString(input), parseString("t")); } @Test(expected = BadArgumentTypeException.class) public void testLesspWithNonNumbers() { evaluateString("(< '(1) '(2))"); } @Test(expected = TooFewArgumentsException.class) public void testLesspWithTooFewArguments() { evaluateString("(<)"); } }