package function.builtin.math; import static testutil.TestUtilities.*; import org.junit.Test; import function.ArgumentValidator.*; public class DIVIDETester { @Test public void testDivideWithOne() { String input = "(/ 1)"; assertSExpressionsMatch(parseString("1"), evaluateString(input)); } @Test public void testDivideWithTwo() { String input = "(/ 2)"; assertSExpressionsMatch(parseString("0"), evaluateString(input)); } @Test public void testDivideTwoNumbers() { String input = "(/ 24 3)"; assertSExpressionsMatch(parseString("8"), evaluateString(input)); } @Test public void testDivideSeveralNumbers() { String input = "(/ 256 2 2 8)"; assertSExpressionsMatch(parseString("8"), evaluateString(input)); } @Test public void testDivideTwoNumbersWithRemainder() { String input = "(/ 9 2)"; assertSExpressionsMatch(parseString("4"), evaluateString(input)); } @Test public void testDivideSeveralNumbersWithRemainder() { String input = "(/ 19 2 5)"; assertSExpressionsMatch(parseString("1"), evaluateString(input)); } @Test(expected = BadArgumentTypeException.class) public void testDivideWithNonNumber() { evaluateString("(/ 'x)"); } @Test(expected = TooFewArgumentsException.class) public void testDivideWithTooFewArguments() { evaluateString("(/)"); } }