Пример #1
0
        public void GetAllBetweenTest()
        {
            //|     x1             x2     y1   |
            //|--+--[ ]--[OSR]--+--[/]----( )--|
            //|  |  y1    x3    |              |
            //|  +--[ ]---[ ]---+              |
            //

            Rung TestRung = new Rung();

            var Y1 = new Coil();

            Y1.Name = "1";
            var X1 = new Contact();

            X1.Name = "1";
            var X2 = new Contact();

            X2.Name       = "2";
            X2.IsInverted = true;
            var X3 = new Contact();

            X3.Name       = "2";
            X3.IsInverted = true;

            var Y1C = new Contact();

            Y1C.Name = "1";
            Y1C.Type = Contact.ContactType.OutputPin;

            TestRung.Add(Y1);
            TestRung.InsertBefore(X2, Y1);
            TestRung.Add(X1);
            TestRung.InsertUnder(Y1C, X1);
            TestRung.InsertAfter(new OSR(), X1);
            TestRung.InsertAfter(X3, Y1C);

            Assert.AreEqual(TestRung.GetAllBetween(X1.LeftLide, X1.RightLide).Count, 1);
            Assert.AreEqual(TestRung.GetAllBetween(X1.LeftLide, X3.RightLide).Count, 4);
            Assert.AreEqual(TestRung.GetAllBetween(X1.LeftLide, X2.RightLide).Count, 5);
            Assert.AreEqual(TestRung.GetAllBetween(X1.LeftLide, Y1.RightLide).Count, 6);
        }