### Question:
Range { @JsonCreator public Range( @JsonProperty("low") Marker low, @JsonProperty("high") Marker high) { requireNonNull(low, "value is null"); requireNonNull(high, "value is null"); if (!low.getType().equals(high.getType())) { throw new IllegalArgumentException(format("Marker types do not match: %s vs %s", low.getType(), high.getType())); } if (low.getBound() == Marker.Bound.BELOW) { throw new IllegalArgumentException("low bound must be EXACTLY or ABOVE"); } if (high.getBound() == Marker.Bound.ABOVE) { throw new IllegalArgumentException("high bound must be EXACTLY or BELOW"); } if (low.compareTo(high) > 0) { throw new IllegalArgumentException("low must be less than or equal to high"); } this.low = low; this.high = high; } @JsonCreator  Range(
            @JsonProperty("low") Marker low,
            @JsonProperty("high") Marker high); static Range all(Type type); static Range greaterThan(Type type, Object low); static Range greaterThanOrEqual(Type type, Object low); static Range lessThan(Type type, Object high); static Range lessThanOrEqual(Type type, Object high); static Range equal(Type type, Object value); static Range range(Type type, Object low, boolean lowInclusive, Object high, boolean highInclusive); Type getType(); @JsonProperty Marker getLow(); @JsonProperty Marker getHigh(); boolean isSingleValue(); Object getSingleValue(); boolean isAll(); boolean includes(Marker marker); boolean contains(Range other); Range span(Range other); boolean overlaps(Range other); Range intersect(Range other); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString(); String toString(ConnectorSession session);  }### Answer:
@Test public void testRange() { Range range = Range.range(BIGINT, 0L, false, 2L, true); assertEquals(range.getLow(), Marker.above(BIGINT, 0L)); assertEquals(range.getHigh(), Marker.exactly(BIGINT, 2L)); assertFalse(range.isSingleValue()); assertFalse(range.isAll()); assertEquals(range.getType(), BIGINT); assertFalse(range.includes(Marker.lowerUnbounded(BIGINT))); assertFalse(range.includes(Marker.exactly(BIGINT, 0L))); assertTrue(range.includes(Marker.exactly(BIGINT, 1L))); assertTrue(range.includes(Marker.exactly(BIGINT, 2L))); assertFalse(range.includes(Marker.exactly(BIGINT, 3L))); assertFalse(range.includes(Marker.upperUnbounded(BIGINT))); }