public void Insert(PointFr p, EventPoint ep) // Wstawia zdarzenie ep w punkcie p do bieżącej kolejki zdarzeń zdarzenia Right są dodawane na początku, pozostałe na końcu { var existing = new C5.LinkedList <EventPoint>(); if (_events.Exists(kvp => kvp.Key.Equals(p))) { existing = _events[p]; _events.Remove(p); } if (ep.Type == EventPointType.Right) // Zdarzenia 'Right' powinny byc na początku listy { existing.Insert(0, ep); } else { existing.Add(ep); } _events.Add(p, existing); }
public void AddAll() { int length = 1000; int[] a = new int[length]; Random ran = new Random(6754); C5.LinkedList<int> lst = new C5.LinkedList<int>(); for (int i = 0; i < length; i++) lst.Add(a[i] = ran.Next()); queue.AddAll(lst); Assert.IsTrue(queue.Check()); Array.Sort(a); for (int i = 0; i < length / 2; i++) { Assert.AreEqual(a[length - i - 1], queue.DeleteMax()); Assert.IsTrue(queue.Check()); Assert.AreEqual(a[i], queue.DeleteMin()); Assert.IsTrue(queue.Check()); } Assert.IsTrue(queue.IsEmpty); }