public void PopAndPush_CallPushBeforePop_CorrectCounters() { ConcurentQueue<int> concurentQueue = new ConcurentQueue<int>(10000); ConcurrentBag<int> popResult = new ConcurrentBag<int>(); ConcurrentBag<Exception> popResultEx = new ConcurrentBag<Exception>(); ConcurrentBag<int> pushItems = new ConcurrentBag<int>(); Parallel.For(0, 10, i => { concurentQueue.Push(i); }); Parallel.For(0, 10, i => { pushItems.Add(i); try { var temp = concurentQueue.Pop(); popResult.Add(temp); } catch (Exception Exp) { popResultEx.Add(Exp); } }); Assert.AreEqual(pushItems.Count, popResult.Count + popResultEx.Count + concurentQueue.Count); }
public void PopAndPush_CallPopBeforePush_CorrectCouners() { ConcurentQueue<int> concurentQueue = new ConcurentQueue<int>(10000); ConcurrentBag<int> popResult = new ConcurrentBag<int>(); ConcurrentBag<Exception> popResultEx = new ConcurrentBag<Exception>(); ConcurrentBag<int> pushItems = new ConcurrentBag<int>(); Parallel.For(0, 10, i => { pushItems.Add(i); try { var temp = concurentQueue.Pop(); popResult.Add(temp); } catch (Exception exp) { popResultEx.Add(exp); } concurentQueue.Push(i); }); Exception exception; popResultEx.TryPeek(out exception); Assert.IsInstanceOf(typeof(TimeoutException), exception); Assert.AreEqual(pushItems.Count, popResult.Count + popResultEx.Count); }
public void Push_10strBy10threads_CorrectCounters() { ConcurentQueue<string> concurentQueue = new ConcurentQueue<string>(); Parallel.For(0, 10, i => concurentQueue.Push(i.ToString())); Assert.AreEqual(10, concurentQueue.Count); }
public void Push_10intBy10threads_CorrectCounters() { ConcurentQueue<int> concurentQueue = new ConcurentQueue<int>(); Parallel.For(0, 10, i => concurentQueue.Push(i)); Assert.AreEqual(10, concurentQueue.Count); }
public void Pop_7strFromFilledQueue_CorrectCounters() { ConcurentQueue<String> concurentQueue = new ConcurentQueue<string>(); Parallel.For(0, 10, i => concurentQueue.Push(i.ToString())); ConcurrentBag<string> popResult = new ConcurrentBag<string>(); Parallel.For(0, 7, i => popResult.Add(concurentQueue.Pop())); Assert.AreEqual(3, concurentQueue.Count); Assert.AreEqual(7, popResult.Count); }
public void Pop_ItemsFromEmptyQueue_CorrectCounters() { ConcurentQueue<int> concurentQueue = new ConcurentQueue<int>(5000); ConcurrentBag<Exception> popResult = new ConcurrentBag<Exception>(); ConcurrentBag<int> pushItems = new ConcurrentBag<int>(); Parallel.For(0, 10, i => { pushItems.Add(i); try { concurentQueue.Pop(); } catch (Exception exp) { popResult.Add(exp); } }); Exception exception; popResult.TryPeek(out exception); Assert.IsInstanceOf(typeof(TimeoutException), exception); Assert.AreEqual(pushItems.Count, popResult.Count); }