void TrialRemoves(T[] data, int start, int stop, bool randomOrder) { var indexes = GetIndexes(start, stop, randomOrder); int hCount = 0, oCount = 0, oldICount = _iSet.Count; _timer.Restart(); for (int i = 0; i < indexes.Count; i++) { if (_hSet.Remove(data[indexes[i]])) { hCount++; } } _hTime += _timer.Restart(); for (int i = 0; i < indexes.Count; i++) { if (_mSet.Remove(data[indexes[i]])) { oCount++; } } _mTime += _timer.Restart(); for (int i = 0; i < indexes.Count; i++) { _iSet = _iSet - data[indexes[i]]; } _iTime += _timer.Restart(); Debug.Assert(hCount == oCount); Debug.Assert(hCount == oldICount - _iSet.Count); TallyMemory(); }