/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.collect.function;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.Test;
/**
* Test ObjLongPredicate.
*/
@Test
public class ObjLongPredicateTest {
public void test_and() {
ObjLongPredicate<String> fn1 = (a, b) -> b > 3;
ObjLongPredicate<String> fn2 = (a, b) -> a.length() > 3;
ObjLongPredicate<String> and = fn1.and(fn2);
assertEquals(fn1.test("a", 2L), false);
assertEquals(fn1.test("a", 4L), true);
assertEquals(fn2.test("a", 4L), false);
assertEquals(fn2.test("abcd", 4L), true);
assertEquals(and.test("a", 2L), false);
assertEquals(and.test("a", 4L), false);
assertEquals(and.test("abcd", 2L), false);
assertEquals(and.test("abcd", 4L), true);
}
@Test(expectedExceptions = NullPointerException.class)
public void test_and_null() {
ObjLongPredicate<String> fn1 = (a, b) -> b > 3;
fn1.and(null);
}
//-------------------------------------------------------------------------
public void test_or() {
ObjLongPredicate<String> fn1 = (a, b) -> b > 3;
ObjLongPredicate<String> fn2 = (a, b) -> a.length() > 3;
ObjLongPredicate<String> or = fn1.or(fn2);
assertEquals(fn1.test("a", 2L), false);
assertEquals(fn1.test("a", 4L), true);
assertEquals(fn2.test("a", 4L), false);
assertEquals(fn2.test("abcd", 4L), true);
assertEquals(or.test("a", 2L), false);
assertEquals(or.test("a", 4L), true);
assertEquals(or.test("abcd", 2L), true);
assertEquals(or.test("abcd", 4L), true);
}
@Test(expectedExceptions = NullPointerException.class)
public void test_or_null() {
ObjLongPredicate<String> fn1 = (a, b) -> b > 3;
fn1.or(null);
}
//-------------------------------------------------------------------------
public void test_negate() {
ObjLongPredicate<String> fn1 = (a, b) -> b > 3;
ObjLongPredicate<String> negate = fn1.negate();
assertEquals(fn1.test("a", 2L), false);
assertEquals(fn1.test("a", 4L), true);
assertEquals(negate.test("a", 2L), true);
assertEquals(negate.test("a", 4L), false);
}
}