| 717 | } |
| 718 | |
| 719 | void mutateSet(NavigableSet<Integer> set, int min, int max, BitSet bs) { |
| 720 | int size = set.size(); |
| 721 | int rangeSize = max - min + 1; |
| 722 | |
| 723 | // Remove a bunch of entries directly |
| 724 | for (int i = 0, n = rangeSize / 2; i < n; i++) { |
| 725 | remove(set, min - 5 + rnd.nextInt(rangeSize + 10), bs); |
| 726 | } |
| 727 | |
| 728 | // Remove a bunch of entries with iterator |
| 729 | for (Iterator<Integer> it = set.iterator(); it.hasNext(); ) { |
| 730 | if (rnd.nextBoolean()) { |
| 731 | bs.clear(it.next()); |
| 732 | it.remove(); |
| 733 | } |
| 734 | } |
| 735 | |
| 736 | // Add entries till we're back to original size |
| 737 | while (set.size() < size) { |
| 738 | int element = min + rnd.nextInt(rangeSize); |
| 739 | assertTrue(element >= min && element<= max); |
| 740 | put(set, element, bs); |
| 741 | } |
| 742 | } |
| 743 | |
| 744 | void mutateSubSet(NavigableSet<Integer> set, int min, int max, |
| 745 | BitSet bs) { |