@Test(expected = IllegalArgumentException.class)
 public void testNOfFunctionInderterminate() throws EvaluationException {
   IntegerExp n = IntegerExp.of(4);
   replay(context);
   assertEquals(
       BooleanExp.valueOf(false), LogicalFunctions.nof(context, n, BooleanExp.valueOf(false)));
   verify(context);
 }
 @Test
 public void testNOfFunction() throws EvaluationException {
   IntegerExp n = IntegerExp.of(0);
   replay(context);
   assertEquals(BooleanExp.valueOf(true), LogicalFunctions.nof(context, n));
   verify(context);
   reset(context);
   replay(context);
   n = IntegerExp.of(1);
   assertEquals(
       BooleanExp.valueOf(true), LogicalFunctions.nof(context, n, BooleanExp.valueOf(true)));
   verify(context);
   reset(context);
   replay(context);
   assertEquals(
       BooleanExp.valueOf(false), LogicalFunctions.nof(context, n, BooleanExp.valueOf(false)));
   verify(context);
   reset(context);
   replay(context);
   n = IntegerExp.of(2);
   assertEquals(
       BooleanExp.valueOf(true),
       LogicalFunctions.nof(context, n, BooleanExp.valueOf(true), BooleanExp.valueOf(true)));
   verify(context);
   reset(context);
   replay(context);
   assertEquals(
       BooleanExp.valueOf(false),
       LogicalFunctions.nof(context, n, BooleanExp.valueOf(true), BooleanExp.valueOf(false)));
   verify(context);
   reset(context);
   replay(context);
   n = IntegerExp.of(2);
   assertEquals(
       BooleanExp.valueOf(true),
       LogicalFunctions.nof(
           context,
           n,
           BooleanExp.valueOf(true),
           BooleanExp.valueOf(false),
           BooleanExp.valueOf(true)));
   verify(context);
 }