### Question:
EliminateCrossJoins implements Rule<JoinNode> { public static boolean isOriginalOrder(List<Integer> joinOrder) { for (int i = 0; i < joinOrder.size(); i++) { if (joinOrder.get(i) != i) { return false; } } return true; } EliminateCrossJoins(Metadata metadata); @Override Pattern<JoinNode> getPattern(); @Override boolean isEnabled(Session session); @Override Result apply(JoinNode node, Captures captures, Context context); static boolean isOriginalOrder(List<Integer> joinOrder); static List<Integer> getJoinOrder(JoinGraph graph); static PlanNode buildJoinTree(List<Symbol> expectedOutputSymbols, JoinGraph graph, List<Integer> joinOrder, PlanNodeIdAllocator idAllocator);  }### Answer:
@Test public void testIsOriginalOrder() { assertTrue(isOriginalOrder(ImmutableList.of(0, 1, 2, 3, 4))); assertFalse(isOriginalOrder(ImmutableList.of(0, 2, 1, 3, 4))); }