### Question:
Range implements AutoCloseable { @Transient public Object getSingleValue() { if (!isSingleValue()) { throw new IllegalStateException("Range does not have just a single value"); } return low.getValue(); } @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:
@Test public void testGetSingleValue() throws Exception { assertEquals(Range.equal(allocator, BIGINT.getType(), 0L).getSingleValue(), 0L); try { Range.lessThan(allocator, BIGINT.getType(), 0L).getSingleValue(); fail(); } catch (IllegalStateException e) { } }