### Question:
Interval { public boolean isEmpty() { return this.start >= this.end; } private  Interval(int start, boolean startInclusive, int end, boolean endInclusive); static Interval ofOpenOpen(int start, int end); static Interval ofOpenClosed(int start, int end); static Interval ofClosedOpen(int start, int end); static Interval ofClosedClosed(int start, int end); boolean isStartClosed(); boolean isEndClosed(); boolean isEmpty(); boolean isBefore(int point); boolean contains(int point); boolean isAfter(int point); Interval intersect(Interval other); Interval union(Interval other); Interval prefix(Interval other); Interval suffix(Interval other); Interval translate(int amount); Interval translateNegative(int amount); int size(); int start(); int end(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testIsEmpty() { assertTrue(Interval.ofOpenOpen(0, 0).isEmpty()); assertFalse(Interval.ofClosedClosed(0, 0).isEmpty()); assertFalse(Interval.ofClosedOpen(0, 1).isEmpty()); assertTrue(Interval.ofOpenClosed(1, 0).isEmpty()); }