### Question:
Sequence extends Structure implements Iterable<ucar.array.StructureData> { public static Builder<?> builder() { return new Builder2(); } protected  Sequence(Builder<?> builder, Group parentGroup); @Deprecated StructureDataIterator getStructureIterator(int bufferSize); @Override Iterator<ucar.array.StructureData> iterator(); @Override Array read(ucar.ma2.Section section); @Override Array read(int[] origin, int[] shape); @Override Array read(String sectionSpec); @Override Array read(List<Range> ranges); @Override StructureData readStructure(int index); @Override ArrayStructure readStructure(int start, int count); @Override Variable slice(int dim, int value); @Override Variable section(Section subsection); Builder<?> toBuilder(); static Builder<?> builder();  }### Answer:
@Test public void testSequenceArray() throws IOException, InvalidRangeException { Sequence.Builder<?> structb = Sequence.builder().setName("seq").addMemberVariable("one", DataType.BYTE, "") .addMemberVariable("two", DataType.STRING, "").addMemberVariable("tres", DataType.FLOAT, ""); structb.setSourceData(makeStructureDataArray()); Structure struct = structb.build(makeDummyGroup()); ucar.array.Array<?> data = struct.readArray(); assertThat(data).isNotNull(); assertThat(data).isInstanceOf(ucar.array.StructureDataArray.class); ucar.array.StructureDataArray as = (ucar.array.StructureDataArray) data; int count = 0; for (ucar.array.StructureData sd : as) { count++; } assertThat(count).isEqualTo(2); }