Created
May 19, 2020 12:20
-
-
Save DanielHons/e25ed9fa54bfd1da3ae6c18959f06fb7 to your computer and use it in GitHub Desktop.
One-liner to compare time ranges for overlapping
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package io.myplant.maintenanceevents.server.validation; | |
import lombok.AllArgsConstructor; | |
import lombok.Data; | |
import org.junit.Test; | |
import java.sql.Time; | |
import static org.junit.Assert.assertFalse; | |
import static org.junit.Assert.assertTrue; | |
public class OverlapTest { | |
@Data | |
@AllArgsConstructor | |
private static class TimeRange{ | |
private Long left; | |
private Long right; | |
} | |
private boolean overlaps(TimeRange a, TimeRange b){ | |
return a.left.compareTo(b.right) == b.left.compareTo(a.right); | |
} | |
@Test | |
public void overlaps1() { | |
assertTrue(overlaps(new TimeRange(5L,10L),new TimeRange(9L,11L))); | |
} | |
@Test | |
public void overlaps2() { | |
assertTrue(overlaps(new TimeRange(9L,11L),new TimeRange(5L,10L))); | |
} | |
@Test | |
public void nonOverlaps1() { | |
assertFalse(overlaps(new TimeRange(9L,11L),new TimeRange(11L,12L))); | |
} | |
@Test | |
public void nonOverlaps2() { | |
assertFalse(overlaps(new TimeRange(11L,12L),new TimeRange(9L,11L))); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment