public boolean overlapInTime() {
        return timeOverlap().isPresent();
    }
@Test
    public void testOverlapInTime() {

        Track<NopHit> fullTrack = Track.of(newArrayList(P1, P2, P3, P4, P5, P6));
        Track<NopHit> earlyTrack = Track.of(newArrayList(P1, P2, P3));
        Track<NopHit> endTrack = Track.of(newArrayList(P4, P5, P6));
        Track<NopHit> endTrack_2 = Track.of(newArrayList(P3, P4, P5, P6));

        assertTrue(overlapInTime(fullTrack, earlyTrack));
        assertTrue(overlapInTime(earlyTrack, fullTrack));

        assertTrue(overlapInTime(fullTrack, endTrack));
        assertTrue(overlapInTime(endTrack, fullTrack));

        assertTrue(overlapInTime(earlyTrack, endTrack_2));
        assertTrue(overlapInTime(endTrack_2, earlyTrack));

        assertFalse(overlapInTime(earlyTrack, endTrack));
        assertFalse(overlapInTime(endTrack, earlyTrack));
    }