//------------------------------------------------------------------------- public virtual void test_negate() { ObjIntPredicate <string> fn1 = (a, b) => b > 3; ObjIntPredicate <string> negate = fn1.negate(); assertEquals(fn1.test("a", 2), false); assertEquals(fn1.test("a", 4), true); assertEquals(negate.test("a", 2), true); assertEquals(negate.test("a", 4), false); }
//------------------------------------------------------------------------- public virtual void test_or() { ObjIntPredicate <string> fn1 = (a, b) => b > 3; ObjIntPredicate <string> fn2 = (a, b) => a.length() > 3; ObjIntPredicate <string> or = fn1.or(fn2); assertEquals(fn1.test("a", 2), false); assertEquals(fn1.test("a", 4), true); assertEquals(fn2.test("a", 4), false); assertEquals(fn2.test("abcd", 4), true); assertEquals(or.test("a", 2), false); assertEquals(or.test("a", 4), true); assertEquals(or.test("abcd", 2), true); assertEquals(or.test("abcd", 4), true); }