(b *testing.B, size int)
| 747 | } |
| 748 | |
| 749 | func benchmarkAddFindRemoveRandom(b *testing.B, size int) { |
| 750 | order := rand.Perm(size) |
| 751 | |
| 752 | b.ResetTimer() |
| 753 | for n := 0; n < b.N; n++ { |
| 754 | var s Set |
| 755 | for _, i := range order { |
| 756 | s.InsertWithoutMergingRange(Range{i, i + 1}, i) |
| 757 | } |
| 758 | for _, i := range order { |
| 759 | seg := s.FindSegment(i) |
| 760 | if !seg.Ok() { |
| 761 | b.Fatalf("Failed to find segment %d", i) |
| 762 | } |
| 763 | s.Remove(seg) |
| 764 | } |
| 765 | if !s.IsEmpty() { |
| 766 | b.Fatalf("Set not empty after all removals:\n%v", &s) |
| 767 | } |
| 768 | } |
| 769 | } |
| 770 | |
| 771 | // Although we don't generally expect our segment sets to get this big, they're |
| 772 | // useful for emulating the effect of cache pressure. |
no test coverage detected
searching dependent graphs…