### Question:
PhenoSetTimeLineImpl implements PhenoSetTimeLine { @Override public void insert(PhenotypeComponent newAbnorm) { phenoset.add(newAbnorm.abnormality()); if (this.phenosetTimeLine.isEmpty()) { phenosetTimeLine.add(newAbnorm); return; } for (int i = 0; i < phenosetTimeLine.size(); i++) { PhenotypeComponent current = phenosetTimeLine.get(i); if (current.effectiveStart().after(newAbnorm.effectiveStart())) { newAbnorm.changeEffectiveEnd(current.effectiveStart()); phenosetTimeLine.add(i, newAbnorm); break; } if (current.effectiveEnd().after(newAbnorm.effectiveStart())){ current.changeEffectiveEnd(newAbnorm.effectiveStart()); if (i != phenosetTimeLine.size() - 1) { newAbnorm.changeEffectiveEnd(phenosetTimeLine.get(i + 1).effectiveStart()); } phenosetTimeLine.add(i + 1, newAbnorm); break; } } messageTimeLine(); return; } PhenoSetTimeLineImpl(PhenoSet phenoset); @Override PhenoSet phenoset(); @Override List<PhenotypeComponent> getTimeLine(); @Override void insert(PhenotypeComponent newAbnorm); @Override PhenotypeComponent current(Date date); @Override PhenotypeComponent persistDuring(Date start, Date end); @Override List<PhenotypeComponent> occurredDuring(Date start, Date end);  }### Answer:
@Test public void insert() throws Exception { }