(SearchArgumentImpl) ConvertAstToSearchArg.create(conf, getFuncDesc(exprStr)); List<PredicateLeaf> leaves = sarg.getLeaves(); assertEquals(1, leaves.size()); assertNoSharedNodes(sarg.getExpression(), Sets.<ExpressionTree>newIdentityHashSet()); assertEquals(TruthValue.NO, sarg.evaluate(values(TruthValue.YES))); assertEquals(TruthValue.YES, sarg.evaluate(values(TruthValue.NO))); assertEquals(TruthValue.NULL, sarg.evaluate(values(TruthValue.NULL))); assertEquals(TruthValue.NO_NULL, sarg.evaluate(values(TruthValue.YES_NULL))); assertEquals(TruthValue.YES_NULL, sarg.evaluate(values(TruthValue.NO_NULL))); assertEquals(TruthValue.YES_NO, sarg.evaluate(values(TruthValue.YES_NO))); assertEquals(TruthValue.YES_NO_NULL, sarg.evaluate(values(TruthValue.YES_NO_NULL)));
(SearchArgumentImpl) ConvertAstToSearchArg.create(conf, getFuncDesc(exprStr)); List<PredicateLeaf> leaves = sarg.getLeaves(); assertEquals(0, leaves.size()); assertEquals(TruthValue.YES_NO_NULL, sarg.evaluate(values()));
(SearchArgumentImpl) ConvertAstToSearchArg.create(conf, getFuncDesc(exprStr)); List<PredicateLeaf> leaves = sarg.getLeaves(); assertEquals(1, leaves.size()); assertNoSharedNodes(sarg.getExpression(), Sets.<ExpressionTree>newIdentityHashSet());
(SearchArgumentImpl) ConvertAstToSearchArg.create(conf, getFuncDesc(exprStr)); List<PredicateLeaf> leaves = sarg.getLeaves(); assertEquals(0, leaves.size());
private static void assertNoSharedNodes(ExpressionTree tree, Set<ExpressionTree> seen ) throws Exception { if (seen.contains(tree) && tree.getOperator() != ExpressionTree.Operator.LEAF) { assertTrue("repeated node in expression " + tree, false); } seen.add(tree); if (tree.getChildren() != null) { for (ExpressionTree child : tree.getChildren()) { assertNoSharedNodes(child, seen); } } }
(SearchArgumentImpl) ConvertAstToSearchArg.create(conf, getFuncDesc(exprStr)); List<PredicateLeaf> leaves = sarg.getLeaves(); assertEquals(3, leaves.size()); assertNoSharedNodes(sarg.getExpression(), Sets.<ExpressionTree>newIdentityHashSet());
(SearchArgumentImpl) ConvertAstToSearchArg.create(conf, getFuncDesc(exprStr)); List<PredicateLeaf> leaves = sarg.getLeaves(); assertEquals(9, leaves.size());
(SearchArgumentImpl) ConvertAstToSearchArg.create(conf, getFuncDesc(exprStr)); List<PredicateLeaf> leaves = sarg.getLeaves(); assertEquals(3, leaves.size()); assertNoSharedNodes(sarg.getExpression(), Sets.<ExpressionTree>newIdentityHashSet()); assertEquals(TruthValue.YES, sarg.evaluate(values(TruthValue.NO, TruthValue.YES, TruthValue.YES))); assertEquals(TruthValue.NULL, sarg.evaluate(values(TruthValue.NULL, TruthValue.YES, TruthValue.YES))); assertEquals(TruthValue.NULL, sarg.evaluate(values(TruthValue.NO, TruthValue.NULL, TruthValue.YES))); assertEquals(TruthValue.NO, sarg.evaluate(values(TruthValue.YES, TruthValue.YES, TruthValue.YES))); assertEquals(TruthValue.NO, sarg.evaluate(values(TruthValue.NO, TruthValue.YES, TruthValue.NO))); assertEquals(TruthValue.NO, sarg.evaluate(values(TruthValue.NO, TruthValue.YES_NULL, TruthValue.NO))); assertEquals(TruthValue.NO_NULL, sarg.evaluate(values(TruthValue.NO, TruthValue.NULL, TruthValue.YES_NO_NULL))); assertEquals(TruthValue.NO_NULL, sarg.evaluate(values(TruthValue.NO, TruthValue.YES, TruthValue.NO_NULL)));
(SearchArgumentImpl) ConvertAstToSearchArg.create(conf, getFuncDesc(exprStr)); List<PredicateLeaf> leaves = sarg.getLeaves(); assertEquals(9, leaves.size()); " (not leaf-4) leaf-5 leaf-6 leaf-8))", sarg.getExpression().toString()); assertNoSharedNodes(sarg.getExpression(), Sets.<ExpressionTree>newIdentityHashSet());
(SearchArgumentImpl) ConvertAstToSearchArg.create(conf, getFuncDesc(exprStr)); List<PredicateLeaf> leaves = sarg.getLeaves(); assertEquals(4, leaves.size()); assertNoSharedNodes(sarg.getExpression(), Sets.<ExpressionTree>newIdentityHashSet()); assertEquals(TruthValue.NO, sarg.evaluate(values(TruthValue.NO, TruthValue.YES, TruthValue.YES, TruthValue.NO))); assertEquals(TruthValue.YES, sarg.evaluate(values(TruthValue.YES, TruthValue.YES, TruthValue.YES, TruthValue.NO))); assertEquals(TruthValue.YES, sarg.evaluate(values(TruthValue.NO, TruthValue.NO, TruthValue.YES, TruthValue.NO))); assertEquals(TruthValue.YES, sarg.evaluate(values(TruthValue.NO, TruthValue.YES, TruthValue.NO, TruthValue.NO))); assertEquals(TruthValue.YES, sarg.evaluate(values(TruthValue.NO, TruthValue.YES, TruthValue.YES, TruthValue.YES))); assertEquals(TruthValue.NULL, sarg.evaluate(values(TruthValue.NULL, TruthValue.YES, TruthValue.YES, TruthValue.NO))); assertEquals(TruthValue.NULL, sarg.evaluate(values(TruthValue.NO, TruthValue.NULL, TruthValue.YES, TruthValue.NO))); assertEquals(TruthValue.NULL, sarg.evaluate(values(TruthValue.NO, TruthValue.YES, TruthValue.NULL,