if (!isPositionValid(length, start, end)) {
/** * @since 2.0.0 */ public static void setSpans(@NonNull SpannableBuilder builder, @Nullable Object spans, int start, int end) { if (spans != null) { // setting a span for an invalid position can lead to silent fail (no exception, // but execution is stopped) if (!isPositionValid(builder.length(), start, end)) { return; } if (spans.getClass().isArray()) { for (Object o : ((Object[]) spans)) { builder.setSpan(o, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } else { builder.setSpan(spans, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } }
@Test public void position_valid() { final Position[] positions = { Position.of(1, 0, 1), Position.of(2, 0, 1), Position.of(2, 1, 2), Position.of(10, 0, 10), Position.of(7, 6, 7) }; for (Position position : positions) { assertTrue(position.toString(), isPositionValid(position.length, position.start, position.end)); } }
@Test public void position_invalid() { final Position[] positions = { Position.of(0, 0, 0), Position.of(-1, -1, -1), Position.of(0, -1, 1), Position.of(1, 1, 1), Position.of(0, 0, 10), Position.of(10, 10, 0), Position.of(10, 5, 2), Position.of(5, 1, 1) }; for (Position position : positions) { assertFalse(position.toString(), isPositionValid(position.length, position.start, position.end)); } }