Ejemplo n.º 1
0
        public void GetStartTransitionsEmptyNetTest()
        {
            // Arrange
            List <IPlace>      places      = new List <IPlace>();
            List <ITransition> transitions = new List <ITransition>();

            PetriNet net = new PetriNet(transitions, places, null, null);

            // Act
            List <ITransition> foundTransitions = net.GetStartTransitions();

            // Assert
            Assert.AreEqual(foundTransitions.Count, 0);
        }
Ejemplo n.º 2
0
        public void GetStartTransitionsTest()
        {
            // Arrange
            IPlace      p1 = new Place("start place");
            IPlace      p2 = new Place("middle place");
            IPlace      p3 = new Place("end place");
            ITransition t1 = new Transition("t1", "start transition");
            ITransition t2 = new Transition("t2", "end transition");

            t1.InputPlaces.Add(p1);
            t1.OutputPlaces.Add(p2);
            t2.InputPlaces.Add(p2);
            t2.OutputPlaces.Add(p3);
            List <IPlace> places = new List <IPlace>()
            {
                p1, p2, p3
            };
            List <ITransition> transitions = new List <ITransition>()
            {
                t1, t2
            };

            List <ITransition> startTransitions = new List <ITransition>()
            {
                t1
            };
            PetriNet net = new PetriNet(transitions, places, p1, p3);

            // Act
            List <ITransition> foundTransitions = net.GetStartTransitions();

            // Assert
            Assert.AreEqual(startTransitions.Count, foundTransitions.Count);
            for (int i = 0; i < startTransitions.Count; i++)
            {
                Assert.AreEqual(startTransitions[i].Activity, foundTransitions[i].Activity);
                Assert.AreEqual(startTransitions[i].InputPlaces.Count, foundTransitions[i].InputPlaces.Count);
                Assert.AreEqual(startTransitions[i].OutputPlaces.Count, foundTransitions[i].OutputPlaces.Count);
                for (int j = 0; j < startTransitions[i].InputPlaces.Count; j++)
                {
                    Assert.AreEqual(startTransitions[i].InputPlaces[j].Id, foundTransitions[i].InputPlaces[j].Id);
                }
                for (int j = 0; j < startTransitions[i].OutputPlaces.Count; j++)
                {
                    Assert.AreEqual(startTransitions[i].OutputPlaces[j].Id, foundTransitions[i].OutputPlaces[j].Id);
                }
            }
        }