### Question:
CoordinateTime2DUnionizer extends CoordinateBuilderImpl<T> { @Override public void addAll(Coordinate coord) { CoordinateTime2D coordT2D = (CoordinateTime2D) coord; for (int runIdx = 0; runIdx < coordT2D.getNruns(); runIdx++) { CoordinateTimeAbstract times = coordT2D.getTimeCoordinate(runIdx); long runtime = coordT2D.getRuntime(runIdx); timeMap.put(runtime, times); } } CoordinateTime2DUnionizer(boolean isTimeInterval, CalendarPeriod timeUnit, int code, boolean makeVals,
      org.slf4j.Logger logger); @Override void addAll(Coordinate coord); @Override Object extract(T gr); @Override Coordinate makeCoordinate(List<Object> values);  }### Answer:
@Test public void testCoordinateUnionizer() { Formatter f = new Formatter(System.out); f.format("Original CoordinateTime2D:%n"); List<CoordinateTime2D> coord2Ds = new ArrayList<>(); for (int i = 5; i < 15; i += 2) { CoordinateTime2D coord2D = makeTimeCoordinate2D(i, 3); coord2Ds.add(coord2D); coord2D.showInfo(f, new Indent(2)); } CoordinateTime2DUnionizer unionizer = new CoordinateTime2DUnionizer(false, timeUnit, code, false, null); for (CoordinateTime2D coord2D : coord2Ds) unionizer.addAll(coord2D); unionizer.finish(); CoordinateTime2D result = (CoordinateTime2D) unionizer.getCoordinate(); f.format("%nUnionized Result:%n"); result.showInfo(f, new Indent(2)); Assert.assertTrue(result.isOrthogonal()); }