### Question:
AbstractParentRecordStructureMember implements HierarchicalRecordStructureMember { @SuppressWarnings("unchecked") public <T extends RecordStructureMember> T getChildMember(final int index) { return (T) getChildren().get(index); } AbstractParentRecordStructureMember(final String name, final int level, final String description,
            final List<? extends RecordStructureMember> children); @Override boolean equals(final Object obj); @SuppressWarnings("unchecked") T getChildMember(final int index); int getChildMemberCount(); @Override String getDescription(); @Override int getLevel(); @Override String getName(); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testGetChildMember() { final RecordStructureField field = mock(RecordStructureField.class); final AbstractParentRecordStructureMember list = mock(AbstractParentRecordStructureMember.class); final AbstractParentRecordStructureMember parent = new ConcreteStructure(name, 1, description, Arrays.asList(field, list)); assertThat(parent.getChildMemberCount()).isEqualTo(2); assertThat(parent.<RecordStructureField> getChildMember(0)).isEqualTo(field); assertThat(parent.<RecordStructureField> getChildMember(1)).isEqualTo(list); }