package com.kickstarter.libs.utils;
import com.kickstarter.libs.Range;
import junit.framework.TestCase;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public final class RangeUtilsTest extends TestCase {
public void testRanges() {
final List<Integer> xs = Arrays.asList(1, 3, 4, 5, 6, 8, 10, 11);
final List<Range> expected = Arrays.asList(
Range.create(0, 1),
Range.create(1, 4),
Range.create(5, 1),
Range.create(6, 2)
);
assertEquals(expected, RangeUtils.consecutiveRanges(xs));
}
public void testRanges_WithEmptyArray() {
final List<Integer> xs = Collections.emptyList();
final List<Range> expected = Collections.emptyList();
assertEquals(expected, RangeUtils.consecutiveRanges(xs));
}
public void testRanges_WithRepeatedEntries() {
final List<Integer> xs = Arrays.asList(1, 1, 1, 1);
final List<Range> expected = Arrays.asList(
Range.create(0, 4)
);
assertEquals(expected, RangeUtils.consecutiveRanges(xs));
}
public void testRanges_WithNonMonotonicArray() {
final List<Integer> xs = Arrays.asList(1, 2, 1, 2, 1, 2);
final List<Range> expected = Arrays.asList(
Range.create(0, 2),
Range.create(2, 2),
Range.create(4, 2)
);
assertEquals(expected, RangeUtils.consecutiveRanges(xs));
}
public void testRanges_WithSingleton() {
final List<Integer> xs = Arrays.asList(1);
final List<Range> expected = Arrays.asList(
Range.create(0, 1)
);
assertEquals(expected, RangeUtils.consecutiveRanges(xs));
}
}