### Question:
Range implements AutoCloseable { public ArrowType getType() { return low.getType(); } @JsonCreator  Range(
            @JsonProperty("low") Marker low,
            @JsonProperty("high") Marker high); static Range all(BlockAllocator allocator, ArrowType type); static Range greaterThan(BlockAllocator allocator, ArrowType type, Object low); static Range greaterThanOrEqual(BlockAllocator allocator, ArrowType type, Object low); static Range lessThan(BlockAllocator allocator, ArrowType type, Object high); static Range lessThanOrEqual(BlockAllocator allocator, ArrowType type, Object high); static Range equal(BlockAllocator allocator, ArrowType type, Object value); static Range range(BlockAllocator allocator, ArrowType type, Object low, boolean lowInclusive, Object high, boolean highInclusive); ArrowType getType(); @JsonProperty Marker getLow(); @JsonProperty Marker getHigh(); @Transient boolean isSingleValue(); @Transient Object getSingleValue(); @Transient boolean isAll(); boolean includes(ValueMarker 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(); @Override void close();  }### Answer:
@SuppressWarnings({"unchecked", "rawtypes"}) @Test(expected = IllegalArgumentException.class) public void testMismatchedTypes() throws Exception { new Range(Marker.exactly(allocator, BIGINT.getType(), 1L), Marker.exactly(allocator, VARCHAR.getType(), "a")); }
@Test(expected = IllegalArgumentException.class) public void testInvertedBounds() throws Exception { new Range(Marker.exactly(allocator, BIGINT.getType(), 1L), Marker.exactly(allocator, BIGINT.getType(), 0L)); }
@Test(expected = IllegalArgumentException.class) public void testLowerUnboundedOnly() throws Exception { new Range(Marker.lowerUnbounded(allocator, BIGINT.getType()), Marker.lowerUnbounded(allocator, BIGINT.getType())); }
@Test(expected = IllegalArgumentException.class) public void testUpperUnboundedOnly() throws Exception { new Range(Marker.upperUnbounded(allocator, BIGINT.getType()), Marker.upperUnbounded(allocator, BIGINT.getType())); }