public void TestTransitionFunctionExecution()
{
var m = new Marking(2, new Dictionary<int, int>
{
{ 0, 2 } ,
{ 1, 0 }
});
var p = new MatrixPetriNet("p",
new Dictionary<int, string> {
{0, "p0"},
{1, "p1"}
},
new Dictionary<int, string>
{
{ 0, "t0" }
},
new Dictionary<int, List<InArc>>(){
{0, new List<InArc>(){new InArc(0)}}
},
new Dictionary<int, List<OutArc>>(){
{0, new List<OutArc>(){new OutArc(1)}}
});
Assert.AreEqual(2, m[0]);
var someLocal = 0;
m[0] = 1;
p.RegisterFunction(0, (t) => someLocal += 1);
m = p.Fire(m);
Assert.AreEqual(1, someLocal);
}