public void TestResourceWithPriorityQueue() { var env = new Environment(new DateTime(2014, 4, 1)); var resource = new PriorityResource(env, capacity: 1); env.Process(TestResourceWithPriorityQueue(env, 0, resource, 2, 0)); env.Process(TestResourceWithPriorityQueue(env, 2, resource, 3, 10)); env.Process(TestResourceWithPriorityQueue(env, 2, resource, 3, 15)); // Test equal priority env.Process(TestResourceWithPriorityQueue(env, 4, resource, 1, 5)); env.Run(); }
private IEnumerable <Event> TestResourceWithPriorityQueue(Environment env, int delay, PriorityResource resource, int priority, int resTime) { yield return(env.Timeout(TimeSpan.FromSeconds(delay))); var req = resource.Request(priority); yield return(req); Assert.AreEqual(new DateTime(2014, 4, 1) + TimeSpan.FromSeconds(resTime), env.Now); yield return(env.Timeout(TimeSpan.FromSeconds(5))); resource.Release(req); }
private IEnumerable<Event> TestResourceWithPriorityQueue(Environment env, int delay, PriorityResource resource, int priority, int resTime) { yield return env.Timeout(TimeSpan.FromSeconds(delay)); var req = resource.Request(priority); yield return req; Assert.AreEqual(new DateTime(2014, 4, 1) + TimeSpan.FromSeconds(resTime), env.Now); yield return env.Timeout(TimeSpan.FromSeconds(5)); resource.Release(req); }