Exemple #1
0
        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();
        }