### Question:
Tracks { public static Track reverse(Track track) { Track view = reverseView(track); return new DefaultTrack(view.getId(), view.getMetadata(), track.getWaypoints(), view.getSegments(), view.getStatistics()); } private  Tracks(); static LinkedTrackPoint getStartPoint(Track track); static LinkedTrackPoint getStartPoint(
			Collection<? extends LinkedTrackPoint> trackpoints); static LinkedTrackPoint getEndPoint(Track track); static LinkedTrackPoint getEndPoint(
			Collection<? extends LinkedTrackPoint> trackpoints); static Track reverseView(final Track track); static Track reverse(Track track); static boolean isRoundtrip(Track track); static boolean isAwayEqReturn(Track track);  }### Answer:
@Test public void testSimpleReverse() throws IOException { Track track = toDefault(loadTrack()); Track rev1 = Tracks.reverse(track); Track rev2 = Tracks.reverse(rev1); assertEquals(track, rev2); }
@Test public void testSegmentedReverse() throws IOException { Track track = toDefault(loadTrack()); Track rev1 = Tracks.reverse(track); Track rev2 = Tracks.reverse(rev1); assertEquals(track, rev2); }