Beispiel #1
0
        public Line(RailwayStation fromObj, RailwayStation toObj, string name, float distance)
        {
            Name = name;
            From = fromObj;
            To = toObj;

            _segmentFrom = new Segment(From, To, distance);
        }
Beispiel #2
0
        public void Insert(RailwayStation fromObject, TrackObject newObject, float distanceFrom)
        {
            if (fromObject == From) {
                _segmentFrom.Insert(From, newObject, distanceFrom);
                return;
            }

            if (fromObject != To) {
                throw new VrException("Railway station isn't part of this Line.");
            }

            Segment segment = FindSegmentEndsWith(To);
            if (segment == null) {
                throw new VrException("Railway station isn't part of this Line.");
            }

            segment.Insert(To, newObject, distanceFrom);
        }
        public void AppendBeforeTest()
        {
            TrackObject beginStation = new RailwayStation("Begin");
            TrackObject endStation = new RailwayStation("End");
            TrackObject newBegin = new RailwayStation("NewBegin");

            Segment source = new Segment(beginStation, endStation, 10);

            Segment appended = source.Insert(endStation, newBegin, 25);

            Assert.AreEqual(appended.From, newBegin);
            Assert.AreEqual(appended.To, beginStation);
            Assert.AreEqual(appended.Distance, 15);

            Assert.AreEqual(appended.Next, source);
            Assert.AreEqual(appended.Prev, null);

            Assert.AreEqual(source.Prev, appended);
            Assert.AreEqual(source.Next, null);
        }
        public void InsertSimpleFromLastTest()
        {
            TrackObject beginStation = new RailwayStation("Begin");
            TrackObject endStation = new RailwayStation("End");
            TrackObject middleStation = new RailwayStation("Middle");

            Segment originSegment = new Segment(beginStation, endStation, 20);

            Segment inserted = originSegment.Insert(endStation, middleStation, 5);

            Assert.AreEqual(inserted.From, middleStation);
            Assert.AreEqual(inserted.To, endStation);
            Assert.AreEqual(inserted.Distance, 5);

            Assert.AreEqual(originSegment.From, beginStation);
            Assert.AreEqual(originSegment.To, middleStation);
            Assert.AreEqual(originSegment.Distance, 15);

            Assert.AreEqual(inserted.Prev, originSegment);
            Assert.AreEqual(inserted.Next, null);

            Assert.AreEqual(originSegment.Prev, null);
            Assert.AreEqual(originSegment.Next, inserted);
        }
        public void InsertFromLastTest()
        {
            TrackObject st12 = new RailwayStation("St_1_2");
            Segment inserted = _seg2.Insert(_st3, st12, 35);

            Assert.AreEqual(_seg1.From, _st1);
            Assert.AreEqual(_seg1.To, st12);
            Assert.AreEqual(_seg1.Distance, 5);

            Assert.AreEqual(inserted.From, st12);
            Assert.AreEqual(inserted.To, _st2);
            Assert.AreEqual(inserted.Distance, 10);

            Assert.AreEqual(_seg2.From, _st2);
            Assert.AreEqual(_seg2.To, _st3);
            Assert.AreEqual(_seg2.Distance, 25);

            Assert.AreEqual(_seg1.Prev, null);
            Assert.AreEqual(_seg1.Next, inserted);

            Assert.AreEqual(inserted.Prev, _seg1);
            Assert.AreEqual(inserted.Next, _seg2);

            Assert.AreEqual(_seg2.Prev, inserted);
            Assert.AreEqual(_seg2.Next, null);
        }