package function.builtin.predicate; import function.ArgumentValidator.TooFewArgumentsException; import function.ArgumentValidator.TooManyArgumentsException; import org.junit.Test; import testutil.SymbolAndFunctionCleaner; import static testutil.TestUtilities.evaluateString; import static testutil.TypeAssertions.assertNil; import static testutil.TypeAssertions.assertT; public class AtomTest extends SymbolAndFunctionCleaner { @Test public void atomIsAtom() { assertT(evaluateString("(atom 'a)")); } @Test public void atomIsAtomWithAlias() { assertT(evaluateString("(atom? 'a)")); } @Test public void listIsNotAtom() { assertNil(evaluateString("(atom '(1 2 3))")); } @Test(expected = TooManyArgumentsException.class) public void testApplyWithTooManyArguments() { evaluateString("(atom '1 '2)"); } @Test(expected = TooFewArgumentsException.class) public void testApplyWithTooFewArguments() { evaluateString("(atom)"); } }