void checkPeriodPredicate(Checker checker) { checker.checkExp("$p(x,xx) $op $p(y,yy)", "(PERIOD (`X`, `XX`) $op PERIOD (`Y`, `YY`))"); checker.checkExp( "$p(x,xx) $op $p(y,yy) or false", "((PERIOD (`X`, `XX`) $op PERIOD (`Y`, `YY`)) OR FALSE)"); checker.checkExp( "true and not $p(x,xx) $op $p(y,yy) or false", "((TRUE AND (NOT (PERIOD (`X`, `XX`) $op PERIOD (`Y`, `YY`)))) OR FALSE)"); if (checker.period.isEmpty()) { checker.checkExp("$p(x,xx,xxx) $op $p(y,yy) or false", "((PERIOD (`X`, `XX`) $op PERIOD (`Y`, `YY`)) OR FALSE)"); } else { // 3-argument rows are valid in the parser, rejected by the validator checker.checkExpFails("$p(x,xx^,^xxx) $op $p(y,yy) or false", "(?s).*Encountered \",\" at .*"); } }
void checkPeriodPredicate(Checker checker) { checker.checkExp("$p(x,xx) $op $p(y,yy)", "(PERIOD (`X`, `XX`) $op PERIOD (`Y`, `YY`))"); checker.checkExp( "$p(x,xx) $op $p(y,yy) or false", "((PERIOD (`X`, `XX`) $op PERIOD (`Y`, `YY`)) OR FALSE)"); checker.checkExp( "true and not $p(x,xx) $op $p(y,yy) or false", "((TRUE AND (NOT (PERIOD (`X`, `XX`) $op PERIOD (`Y`, `YY`)))) OR FALSE)"); if (checker.period.isEmpty()) { checker.checkExp("$p(x,xx,xxx) $op $p(y,yy) or false", "((PERIOD (`X`, `XX`) $op PERIOD (`Y`, `YY`)) OR FALSE)"); } else { // 3-argument rows are valid in the parser, rejected by the validator checker.checkExpFails("$p(x,xx^,^xxx) $op $p(y,yy) or false", "(?s).*Encountered \",\" at .*"); } }
@Test public void testOverlaps() { final String[] ops = { "overlaps", "equals", "precedes", "succeeds", "immediately precedes", "immediately succeeds" }; final String[] periods = {"period ", ""}; for (String period : periods) { for (String op : ops) { checkPeriodPredicate(new Checker(op, period)); } } }
@Test public void testOverlaps() { final String[] ops = { "overlaps", "equals", "precedes", "succeeds", "immediately precedes", "immediately succeeds" }; final String[] periods = {"period ", ""}; for (String period : periods) { for (String op : ops) { checkPeriodPredicate(new Checker(op, period)); } } }