### Question:
SyntacticEquivalence { public static boolean areEquivalent(@Nullable UastNode node1, @Nullable UastNode node2) { if (node1 == null && node2 == null) { return true; } if (node1 == null || node2 == null) { return false; } if (node1.token == null && node2.token != null) { return false; } if (node2.token != null && !node1.token.value.equals(node2.token.value)) { return false; } if (node1.is(UastNode.Kind.UNSUPPORTED) || node2.is(UastNode.Kind.UNSUPPORTED)) { return false; } CommentFilteredList list1 = new CommentFilteredList(node1.children); CommentFilteredList list2 = new CommentFilteredList(node2.children); if (list1.computeSize() != list2.computeSize()) { return false; } Iterator<UastNode> child1 = list1.iterator(); Iterator<UastNode> child2 = list2.iterator(); while (child1.hasNext()) { if (!areEquivalent(child1.next(), child2.next())) { return false; } } return true; } private  SyntacticEquivalence(); static boolean areEquivalent(@Nullable UastNode node1, @Nullable UastNode node2); static boolean areEquivalent(List<UastNode> node1, List<UastNode> node2);  }### Answer:
@Test void syntactically_equivalent_of_unsupported_node() throws Exception { UastNode node1 = UastNode.from(new StringReader("{ children: [ { kinds: [ 'UNSUPPORTED' ] } ] }")); UastNode node2 = UastNode.from(new StringReader("{ children: [ { kinds: [ 'UNSUPPORTED' ] } ] }")); assertFalse(SyntacticEquivalence.areEquivalent(node1, node2)); }