public void EnumerateList()
        {
            var exists = new HashSet <int>();

            var enumerator = new ReadLockWhereEnumerator <int, int>(_list, _stub, 0, _lock);

            while (enumerator.MoveNext())
            {
                exists.Add(enumerator.Current).Should().BeTrue();
            }

            exists.Count.Should().Be(_list.Count);
            enumerator.Dispose();
        }
        public void FilterListValues()
        {
            var exists = new HashSet <int>();

            var greatestValue = _list.Max();
            var enumerator    = new ReadLockWhereEnumerator <int, int>(_list, (v, arg) => v >= arg, greatestValue, _lock);

            while (enumerator.MoveNext())
            {
                exists.Add(enumerator.Current).Should().BeTrue();
            }

            exists.Count.Should().Be(1);
            exists.Should().ContainSingle(v => v == greatestValue);
            enumerator.Dispose();
        }