(NavigableSet<Integer> set, int min, int max,
BitSet bs)
| 742 | } |
| 743 | |
| 744 | void mutateSubSet(NavigableSet<Integer> set, int min, int max, |
| 745 | BitSet bs) { |
| 746 | int size = set.size(); |
| 747 | int rangeSize = max - min + 1; |
| 748 | |
| 749 | // Remove a bunch of entries directly |
| 750 | for (int i = 0, n = rangeSize / 2; i < n; i++) { |
| 751 | remove(set, min - 5 + rnd.nextInt(rangeSize + 10), bs); |
| 752 | } |
| 753 | |
| 754 | // Remove a bunch of entries with iterator |
| 755 | for (Iterator<Integer> it = set.iterator(); it.hasNext(); ) { |
| 756 | if (rnd.nextBoolean()) { |
| 757 | bs.clear(it.next()); |
| 758 | it.remove(); |
| 759 | } |
| 760 | } |
| 761 | |
| 762 | // Add entries till we're back to original size |
| 763 | while (set.size() < size) { |
| 764 | int element = min - 5 + rnd.nextInt(rangeSize + 10); |
| 765 | if (element >= min && element<= max) { |
| 766 | put(set, element, bs); |
| 767 | } else { |
| 768 | try { |
| 769 | set.add(element); |
| 770 | shouldThrow(); |
| 771 | } catch (IllegalArgumentException success) {} |
| 772 | } |
| 773 | } |
| 774 | } |
| 775 | |
| 776 | void put(NavigableSet<Integer> set, int element, BitSet bs) { |
| 777 | if (set.add(element)) |
no test coverage detected