| 9 | import java.util.*; |
| 10 | |
| 11 | public class TreeNodeTest { |
| 12 | @Test |
| 13 | public void test_iteratorNormal(){ |
| 14 | IntervalTree<Integer> tree = new IntervalTree<>(); |
| 15 | Interval<Integer>[] arr = new IntegerInterval[]{ |
| 16 | new IntegerInterval(6, 10, Bounded.OPEN), |
| 17 | new IntegerInterval(2, 100, Bounded.CLOSED), |
| 18 | new IntegerInterval(8, 20, Bounded.CLOSED), |
| 19 | new IntegerInterval(-2, 0, Bounded.CLOSED), |
| 20 | new IntegerInterval(-3, 0, Bounded.CLOSED_RIGHT), |
| 21 | new IntegerInterval(10, 20, Bounded.CLOSED_LEFT), |
| 22 | new IntegerInterval(11, 14, Bounded.CLOSED_LEFT), |
| 23 | new IntegerInterval(-20, -10, Bounded.CLOSED), |
| 24 | new IntegerInterval(-14, -11, Bounded.CLOSED), |
| 25 | new IntegerInterval(-14, -10, Bounded.OPEN), |
| 26 | new IntegerInterval(0, 4, Bounded.OPEN) |
| 27 | }; |
| 28 | for (Interval<Integer> interval: arr) |
| 29 | tree.add(interval); |
| 30 | List<Interval<Integer>> list = new ArrayList<>(); |
| 31 | for (Interval<Integer> interval: tree) |
| 32 | list.add(interval); |
| 33 | |
| 34 | assertThat(new HashSet<>(Arrays.asList(arr)), is(new HashSet<>(list))); |
| 35 | assertEquals(arr.length, list.size()); |
| 36 | } |
| 37 | |
| 38 | @Test |
| 39 | public void test_iteratorEmpty(){ |
| 40 | IntervalTree<Integer> tree = new IntervalTree<>(); |
| 41 | assertFalse(tree.iterator().hasNext()); |
| 42 | tree.add(new IntegerInterval(1, 3, Bounded.CLOSED)); |
| 43 | Iterator<Interval<Integer>> it = tree.iterator(); |
| 44 | it.next(); |
| 45 | assertFalse(it.hasNext()); |
| 46 | try{ |
| 47 | it.next(); |
| 48 | fail(); |
| 49 | } catch (Exception e){ |
| 50 | assertTrue(e instanceof NoSuchElementException); |
| 51 | } |
| 52 | } |
| 53 | |
| 54 | @Test |
| 55 | public void test_iteratorBackToRootWithMultipleIntervals(){ |
| 56 | IntervalTree<Integer> tree = new IntervalTree<>(); |
| 57 | Set<Interval<Integer>> set = new HashSet<>(new ArrayList<Interval<Integer>>(Arrays.asList( |
| 58 | new IntegerInterval(12, 22, Bounded.CLOSED_RIGHT), |
| 59 | new IntegerInterval(12, 25, Bounded.CLOSED_RIGHT), |
| 60 | new IntegerInterval(0, 10, Bounded.CLOSED_RIGHT) |
| 61 | ))); |
| 62 | for (Interval<Integer> next: set) |
| 63 | tree.add(next); |
| 64 | Set<Interval<Integer>> result = new HashSet<>(); |
| 65 | for (Interval<Integer> next: tree) |
| 66 | result.add(next); |
| 67 | assertThat(set, is(result)); |
| 68 | } |
nothing calls this directly
no outgoing calls
no test coverage detected
searching dependent graphs…