public Line(RailwayStation fromObj, RailwayStation toObj, string name, float distance) { Name = name; From = fromObj; To = toObj; _segmentFrom = new Segment(From, To, distance); }
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); }