public void TestInputTransition() { var m = new Marking(1, new Dictionary<int, int> { { 0, 0 } }); var p = new GraphPetriNet("p", new Dictionary<int, string> { {0, "p0"} }, new Dictionary<int, string> { { 0, "Ti" } }, new Dictionary<int, List<InArc>>() { }, new Dictionary<int, List<OutArc>>(){ {0, new List<OutArc>(){new OutArc(0)}} }); Assert.IsTrue(p.IsEnabled(0, m)); m = p.Fire(m); Assert.AreEqual(1, m[0]); Assert.IsTrue(p.IsEnabled(0, m)); m = p.Fire(m); Assert.AreEqual(2, m[0]); Assert.IsTrue(p.IsEnabled(0, m)); }
public void TestDrainTransition() { var m = new Marking(1, new Dictionary<int, int> { { 0, 5 } }); var p = new GraphPetriNet("p", new Dictionary<int, string> { {0, "p0"} }, new Dictionary<int, string> { { 0, "Ti" } }, new Dictionary<int, List<InArc>>() { {0, new List<InArc>(){new InArc(0)}} }, new Dictionary<int, List<OutArc>>() { }); for (int i = 5; i >= 0; i--) { Assert.AreEqual(i, m[0]); Assert.AreEqual(i > 0, p.IsEnabled(0, m)); m = p.Fire(m); } }