public void SortedArrayListAllowDuplicatesTest() { var b = new CKSortedArrayList <int>(true); b.AddRangeArray(12, -34, 7, 545, 12); b.AllowDuplicates.Should().BeTrue(); b.Count.Should().Be(5); b.Should().BeInAscendingOrder(); b.IndexOf(12).Should().Be(2); b.CheckPosition(2).Should().Be(2); b.CheckPosition(3).Should().Be(3); }
public void SortedArrayListAllowDuplicatesTest() { var b = new CKSortedArrayList <int>(true); b.AddRangeArray(12, -34, 7, 545, 12); Assert.That(b.AllowDuplicates, Is.True); Assert.That(b.Count, Is.EqualTo(5)); Assert.That(b, Is.Ordered); Assert.That(b.IndexOf(12), Is.EqualTo(2)); Assert.That(b.CheckPosition(2), Is.EqualTo(2)); Assert.That(b.CheckPosition(3), Is.EqualTo(3)); }
public void testing_expected_Argument_InvalidOperation_and_IndexOutOfRangeException() { var a = new CKSortedArrayList <Mammal>((a1, a2) => a1.Name.CompareTo(a2.Name)); Assert.Throws <ArgumentNullException>(() => a.IndexOf(null)); Assert.Throws <ArgumentNullException>(() => a.IndexOf <Mammal>(new Mammal("Nothing"), null)); Assert.Throws <ArgumentNullException>(() => a.Add(null)); a.Add(new Mammal("A")); a.Add(new Mammal("B")); Assert.Throws <IndexOutOfRangeException>(() => { Mammal test = a[2]; }); Assert.Throws <IndexOutOfRangeException>(() => a.CheckPosition(2)); Assert.Throws <IndexOutOfRangeException>(() => { Mammal test = a[-1]; }); Assert.Throws <IndexOutOfRangeException>(() => a.CheckPosition(-1)); //Enumerator Exception var enumerator = a.GetEnumerator(); Assert.Throws <InvalidOperationException>(() => { Mammal temp = enumerator.Current; }); enumerator.MoveNext(); Assert.That(enumerator.Current, Is.EqualTo(a[0])); enumerator.Reset(); Assert.Throws <InvalidOperationException>(() => { Mammal temp = enumerator.Current; }); a.Clear(); //change _version Assert.Throws <InvalidOperationException>(() => enumerator.Reset()); Assert.Throws <InvalidOperationException>(() => enumerator.MoveNext()); //Exception IList <Mammal> testException = new CKSortedArrayList <Mammal>(); testException.Add(new Mammal("Nothing")); Assert.Throws <IndexOutOfRangeException>(() => testException[-1] = new Mammal("A")); Assert.Throws <IndexOutOfRangeException>(() => testException[1] = new Mammal("A")); Assert.Throws <ArgumentNullException>(() => testException[0] = null); Assert.Throws <IndexOutOfRangeException>(() => testException.Insert(-1, new Mammal("A"))); Assert.Throws <IndexOutOfRangeException>(() => testException.Insert(2, new Mammal("A"))); Assert.Throws <ArgumentNullException>(() => testException.Insert(0, null)); }
public bool MoveNext() { if (_readers == null) { if (_files.Count == 0) { return(false); } _readers = new CKSortedArrayList <OneLogReader>(OneLogReader.CompareHeadTime, allowDuplicates: true); foreach (var r in _files.Where(occ => occ.LastEntryTime >= _firstLogTime).Select(occ => new OneLogReader(occ, _firstLogTime))) { _readers.Add(r); } if (_readers.Count == 0) { return(false); } RemoveAllDuplicates(); Debug.Assert(_readers.Count > 0); return(true); } if (_readers.Count == 0) { return(false); } if (!_readers[0].Forward()) { _readers.RemoveAt(0); return(_readers.Count > 0); } else { RemoveDuplicateAround(_readers.CheckPosition(0)); Debug.Assert(_readers.Count > 0); return(true); } }