### Question:
ArrayNode extends Node implements Iterable<Node> { public ArrayNode(List<Node> elements, SourceLocation sourceLocation) { this(elements, sourceLocation, true); } ArrayNode(List<Node> elements, SourceLocation sourceLocation);   ArrayNode(List<Node> elements, SourceLocation sourceLocation, boolean defensiveCopy); @Override Iterator<Node> iterator(); @Override NodeType getType(); @Override R accept(NodeVisitor<R> visitor); @Override ArrayNode expectArrayNode(String errorMessage); @Override Optional<ArrayNode> asArrayNode(); List<Node> getElements(); Optional<Node> get(int index); boolean isEmpty(); int size(); ArrayNode withValue(Node node); List<T> getElementsAs(Class<T> type); @SuppressWarnings("unchecked") List<T> getElementsAs(Function<K, T> f); ArrayNode merge(ArrayNode other); static Collector<T, List<Node>, ArrayNode> collect(); static Collector<T, List<Node>, ArrayNode> collect(SourceLocation sloc); @Override boolean equals(Object other); @Override int hashCode();  }### Answer:
@Test public void isArrayNode() { ArrayNode node = Node.arrayNode(); assertEquals(false, node.isObjectNode()); assertEquals(true, node.isArrayNode()); assertEquals(false, node.isStringNode()); assertEquals(false, node.isNumberNode()); assertEquals(false, node.isBooleanNode()); assertEquals(false, node.isNullNode()); }