@Test public void testOrGetsCorrectPrecedence() {

    // tests that a selector "a b, c d, e f" evals to (a AND b) OR (c AND d) OR (e AND f)"
    // top level or, three child ands
    Evaluator eval = QueryParser.parse("a b, c d, e f");
    assertTrue(eval instanceof CombiningEvaluator.Or);
    CombiningEvaluator.Or or = (CombiningEvaluator.Or) eval;
    assertEquals(3, or.evaluators.size());
    for (Evaluator innerEval: or.evaluators) {
        assertTrue(innerEval instanceof CombiningEvaluator.And);
        CombiningEvaluator.And and = (CombiningEvaluator.And) innerEval;
        assertEquals(2, and.evaluators.size());
        assertTrue(and.evaluators.get(0) instanceof Evaluator.Tag);
        assertTrue(and.evaluators.get(1) instanceof StructuralEvaluator.Parent);
    }
}