@Test
    @FeatureRequirement(featureClass = GraphFeatures.class, feature = GraphFeatures.FEATURE_ORDERABILITY_SEMANTICS)
    public void testAnd() {
        final P TRUE = P.eq(1);
        final P FALSE = P.gt(1);
        final P ERROR = P.lt(Double.NaN);

        // TRUE, TRUE -> TRUE
        checkHasNext(true, g.inject(1).and(is(TRUE),is(TRUE)));
        checkHasNext(true, g.inject(1).is(TRUE.and(TRUE)));
        // TRUE, FALSE -> FALSE
        checkHasNext(false, g.inject(1).and(is(TRUE),is(FALSE)));
        checkHasNext(false, g.inject(1).is(TRUE.and(FALSE)));
        // TRUE, ERROR -> ERROR -> FALSE
        checkHasNext(false, g.inject(1).and(is(TRUE),is(ERROR)));
        checkHasNext(false, g.inject(1).is(TRUE.and(ERROR)));

        // FALSE, TRUE -> FALSE
        checkHasNext(false, g.inject(1).and(is(FALSE),is(TRUE)));
        checkHasNext(false, g.inject(1).is(FALSE.and(TRUE)));
        // FALSE, FALSE -> FALSE
        checkHasNext(false, g.inject(1).and(is(FALSE),is(FALSE)));
        checkHasNext(false, g.inject(1).is(FALSE.and(FALSE)));
        // FALSE, ERROR -> FALSE
        checkHasNext(false, g.inject(1).and(is(FALSE),is(ERROR)));
        checkHasNext(false, g.inject(1).is(FALSE.and(ERROR)));

        // ERROR, TRUE -> ERROR -> FALSE
        checkHasNext(false, g.inject(1).and(is(ERROR),is(TRUE)));
        checkHasNext(false, g.inject(1).is(ERROR.and(TRUE)));
        // ERROR, FALSE -> FALSE
        checkHasNext(false, g.inject(1).and(is(ERROR),is(FALSE)));
        checkHasNext(false, g.inject(1).is(ERROR.and(FALSE)));
        // ERROR, ERROR -> ERROR -> FALSE
        checkHasNext(false, g.inject(1).and(is(ERROR),is(ERROR)));
        checkHasNext(false, g.inject(1).is(ERROR.and(ERROR)));
    }
Over a ternary binary semantics, the AND predicate evaluates to TRUE only if both arguments are TRUE. AND will
propogate ERROR values unless the other argument evalutes to FALSE, since FALSE && X => FALSE.
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TernaryBooleanLogicsTest.java