Allow functional mapping of Range and Boundary.

We now support functional mapping of Range values by accepting a mapping function.

Closes #2692
This commit is contained in:
Mark Paluch
2022-09-26 14:12:24 +02:00
parent b4511852d5
commit cdcd21a064
2 changed files with 70 additions and 5 deletions

View File

@@ -253,6 +253,20 @@ class RangeUnitTests {
assertThat(range.contains(10L, Long::compareTo)).isFalse();
}
@Test // GH-2692
void mapsBoundaryValues() {
var range = Range.leftOpen(5L, 10L).map(it -> it * 10);
assertThat(range.getLowerBound()).isEqualTo(Bound.exclusive(50L));
assertThat(range.getUpperBound()).isEqualTo(Bound.inclusive(100L));
range = Range.leftOpen(5L, 10L).map(it -> null);
assertThat(range.getLowerBound()).isEqualTo(Bound.unbounded());
assertThat(range.getUpperBound()).isEqualTo(Bound.unbounded());
}
@Test // DATACMNS-1499
void createsLeftUnboundedRange() {
assertThat(Range.leftUnbounded(Bound.inclusive(10L)).contains(-10000L)).isTrue();