public IEnumerator InsertPlatformErrorUnNeighbored() { yield return(null); var rn1 = utils.factory.NewRailNode(new Vector3(0f, 0f)); var rnX = utils.factory.NewRailNode(new Vector3(0f, 0f)); yield return(null); var p1 = rn1.BuildStation(); var pX = rnX.BuildStation(); yield return(null); var e12 = rn1.Extend(new Vector3(1f, 1f)); yield return(null); var rn2 = e12.To; var l = new RailLine(utils.storage, utils.listener); l.StartLine(p1); var dept1 = l.Top; dept1.InsertEdge(e12); var mv12 = dept1.Next; Assert.Throws <ArgumentException>(() => mv12.InsertPlatform(pX)); }
public IEnumerator InsertEdgeToStation() { yield return(null); var rn1 = utils.factory.NewRailNode(new Vector3(0f, 0f)); yield return(null); var p1 = rn1.BuildStation(); yield return(null); var e12 = rn1.Extend(new Vector3(1f, 1f)); yield return(null); var e21 = e12.Reverse; var rn2 = e12.To; var p2 = rn2.BuildStation(); yield return(null); var l = new RailLine(utils.storage, utils.listener); l.StartLine(p1); var dept1 = l.Top; // rn1 -> [dept1] -> rn1 -> [mv12] -> rn2 -> [dept2] -> [mv21] -> rn1 dept1.InsertEdge(e12); var mv12 = dept1.Next; Assert.IsInstanceOf(typeof(EdgeTask), mv12); Assert.AreSame(l, mv12.Parent); Assert.AreSame(e12, (mv12 as EdgeTask).Edge); Assert.AreSame(rn1, mv12.Departure); Assert.AreSame(rn2, mv12.Destination); Assert.AreEqual(e12.Arrow.magnitude, mv12.Length, utils.DELTA); Assert.AreSame(mv12, dept1.Next); Assert.AreSame(dept1, mv12.Prev); var dept2 = mv12.Next; Assert.IsInstanceOf(typeof(DeptTask), dept2); Assert.AreSame(p2, (dept2 as DeptTask).Stay); Assert.AreSame(rn2, dept2.Departure); Assert.AreSame(rn2, dept2.Destination); Assert.AreSame(dept2, mv12.Next); Assert.AreSame(mv12, dept2.Prev); var mv21 = dept2.Next; Assert.AreSame(l, mv21.Parent); Assert.AreSame(e21, (mv21 as EdgeTask).Edge); Assert.AreSame(rn2, mv21.Departure); Assert.AreSame(rn1, mv21.Destination); Assert.AreSame(mv21, dept2.Next); Assert.AreSame(dept2, mv21.Prev); Assert.AreSame(dept1, mv21.Next); Assert.AreSame(mv21, dept1.Prev); }
public IEnumerator InsertEdgeToNonStationEdge() { yield return(null); var rn1 = utils.factory.NewRailNode(new Vector3(0f, 0f)); yield return(null); var p1 = rn1.BuildStation(); yield return(null); var e12 = rn1.Extend(new Vector3(1f, 1f)); yield return(null); var e21 = e12.Reverse; var rn2 = e12.To; var e23 = rn2.Extend(new Vector3(2f, 2f)); yield return(null); var rn3 = e23.To; var e32 = e23.Reverse; var l = new RailLine(utils.storage, utils.listener); l.StartLine(p1); var dept1 = l.Top; // 1. rn1 -> [e12] -> rn2 // 2. rn1 -> [e12] -> rn2 -> [e23] -> rn3 dept1.InsertEdge(e12); var mv12 = dept1.Next; mv12.InsertEdge(e23); var mv23 = mv12.Next; Assert.IsInstanceOf(typeof(EdgeTask), mv23); Assert.AreSame(l, mv23.Parent); Assert.AreSame(e23, (mv23 as EdgeTask).Edge); Assert.AreSame(rn2, mv23.Departure); Assert.AreSame(rn3, mv23.Destination); Assert.AreEqual(e23.Arrow.magnitude, mv23.Length, utils.DELTA); Assert.AreSame(mv23, mv12.Next); Assert.AreSame(mv12, mv23.Prev); var mv32 = mv23.Next; Assert.AreSame(l, mv32.Parent); Assert.AreSame(e32, (mv32 as EdgeTask).Edge); Assert.AreSame(rn3, mv32.Departure); Assert.AreSame(rn2, mv32.Destination); Assert.AreSame(mv32, mv23.Next); Assert.AreSame(mv23, mv32.Prev); Assert.AreSame(mv32, mv32.Next.Prev); }
public IEnumerator InsertPlatform() { yield return(null); var rn1 = utils.factory.NewRailNode(new Vector3(0f, 0f)); yield return(null); var p1 = rn1.BuildStation(); yield return(null); var e12 = rn1.Extend(new Vector3(1f, 1f)); yield return(null); var e21 = e12.Reverse; var rn2 = e12.To; var l = new RailLine(utils.storage, utils.listener); l.StartLine(p1); var dept1 = l.Top; dept1.InsertEdge(e12); var mv12 = dept1.Next; var mv21 = mv12.Next; var p2 = rn2.BuildStation(); yield return(null); mv12.InsertPlatform(p2); var dept2 = mv12.Next; Assert.IsInstanceOf(typeof(DeptTask), dept2); Assert.AreSame(p2, (dept2 as DeptTask).Stay); Assert.AreSame(rn2, dept2.Departure); Assert.AreSame(rn2, dept2.Destination); Assert.AreSame(dept2, mv12.Next); Assert.AreSame(mv12, dept2.Prev); Assert.AreSame(mv21, dept2.Next); Assert.AreSame(dept2, mv21.Prev); }
public IEnumerator InsertPlatformErrorDuplicated() { yield return(null); var rn1 = utils.factory.NewRailNode(new Vector3(0f, 0f)); var rnX = utils.factory.NewRailNode(new Vector3(0f, 0f)); yield return(null); var p1 = rn1.BuildStation(); var pX = rnX.BuildStation(); yield return(null); var l = new RailLine(utils.storage, utils.listener); l.StartLine(p1); var dept = l.Top; Assert.Throws <ArgumentException>(() => dept.InsertPlatform(pX)); }
public void Act(Platform p) { line.StartLine(p); }