public void a010_NodeNumberTest() { { Wire[] wires = PrepareWireArray(1); wires[0].transform.position = new Vector3(0.5f, 0, 0); wires[0]._direction = Wire.Direction.XZ_X; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); Assert.AreEqual(2, nodes.Count); } { Wire[] wires = PrepareWireArray(2); wires[0].transform.position = new Vector3(0.5f, 0, 1); wires[0]._direction = Wire.Direction.XZ_X; wires[1].transform.position = new Vector3(8.5f, 0, 8); wires[1]._direction = Wire.Direction.XZ_X; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); Assert.AreEqual(4, nodes.Count); } { Wire[] wires = PrepareWireArray(2); wires[0].transform.position = new Vector3(0.5f, 0, 1); wires[0]._direction = Wire.Direction.XZ_X; wires[1].transform.position = new Vector3(1.5f, 0, 1); wires[1]._direction = Wire.Direction.XZ_X; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); Assert.AreEqual(3, nodes.Count); } { Wire[] wires = PrepareWireArray(2); wires[0].transform.position = new Vector3(0.5f, 0, 1); wires[0]._direction = Wire.Direction.XZ_X; wires[1].transform.position = new Vector3(1.5f, 0, 2); wires[1]._direction = Wire.Direction.XZ_X; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); Assert.AreEqual(4, nodes.Count); } { Wire[] wires = PrepareWireArray(2); wires[0].transform.position = new Vector3(0.5f, 0, 1); wires[0]._direction = Wire.Direction.XZ_X; wires[1].transform.position = new Vector3(2.5f, 0, 1); wires[1]._direction = Wire.Direction.XZ_X; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); Assert.AreEqual(4, nodes.Count); } { Wire[] wires = PrepareWireArray(3); wires[0].transform.position = new Vector3(-0.5f, 0, 1); wires[0]._direction = Wire.Direction.XZ_X; wires[1].transform.position = new Vector3(0.5f, 0, 1); wires[1]._direction = Wire.Direction.XZ_X; wires[2].transform.position = new Vector3(1.5f, 0, 1); wires[2]._direction = Wire.Direction.XZ_X; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); Assert.AreEqual(4, nodes.Count); } { Wire[] wires = PrepareWireArray(4); wires[0].transform.position = new Vector3(0.5f, 0, 1); wires[0]._direction = Wire.Direction.XZ_X; wires[1].transform.position = new Vector3(1.5f, 0, 1); wires[1]._direction = Wire.Direction.XZ_X; wires[2].transform.position = new Vector3(2.5f, 0, 1); wires[2]._direction = Wire.Direction.XZ_X; wires[3].transform.position = new Vector3(5.5f, 0, 5); wires[3]._direction = Wire.Direction.XZ_X; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); Assert.AreEqual(6, nodes.Count); } { Wire[] wires = PrepareWireArray(6); wires[0].transform.position = new Vector3(0.5f, 0, 1); wires[0]._direction = Wire.Direction.XZ_X; wires[1].transform.position = new Vector3(1.5f, 0, 1); wires[1]._direction = Wire.Direction.XZ_X; wires[2].transform.position = new Vector3(2.5f, 0, 1); wires[2]._direction = Wire.Direction.XZ_X; wires[3].transform.position = new Vector3(5.5f, 0, 5); wires[3]._direction = Wire.Direction.XZ_X; wires[4].transform.position = new Vector3(5, 0, 5.5f); wires[4]._direction = Wire.Direction.XZ_Z; wires[5].transform.position = new Vector3(5, 0, 6.5f); wires[5]._direction = Wire.Direction.XZ_Z; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); Assert.AreEqual(8, nodes.Count); } }
public void a020_BuildTest() { { Wire[] wires = PrepareWireArray(6); wires[0].transform.position = new Vector3(0.5f, 0, 1); wires[0]._direction = Wire.Direction.XZ_X; wires[1].transform.position = new Vector3(1.5f, 0, 1); wires[1]._direction = Wire.Direction.XZ_X; wires[2].transform.position = new Vector3(2.5f, 0, 1); wires[2]._direction = Wire.Direction.XZ_X; wires[3].transform.position = new Vector3(5.5f, 0, 5); wires[3]._direction = Wire.Direction.XZ_X; wires[4].transform.position = new Vector3(5, 0, 5.5f); wires[4]._direction = Wire.Direction.XZ_Z; wires[5].transform.position = new Vector3(5, 0, 6.5f); wires[5]._direction = Wire.Direction.XZ_Z; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); // 7 // | // 6 // | // 0-1-2-3, 4-5 Assert.AreEqual(1, nodes[0]._adjacentNodes.Count); Assert.AreEqual(1, nodes[0]._adjacentNodes[0]); Assert.AreEqual(2, nodes[1]._adjacentNodes.Count); Assert.AreEqual(0, nodes[1]._adjacentNodes[0]); Assert.AreEqual(2, nodes[1]._adjacentNodes[1]); Assert.AreEqual(2, nodes[2]._adjacentNodes.Count); Assert.AreEqual(1, nodes[2]._adjacentNodes[0]); Assert.AreEqual(3, nodes[2]._adjacentNodes[1]); Assert.AreEqual(1, nodes[3]._adjacentNodes.Count); Assert.AreEqual(2, nodes[3]._adjacentNodes[0]); Assert.AreEqual(2, nodes[4]._adjacentNodes.Count); Assert.AreEqual(5, nodes[4]._adjacentNodes[0]); Assert.AreEqual(6, nodes[4]._adjacentNodes[1]); Assert.AreEqual(1, nodes[5]._adjacentNodes.Count); Assert.AreEqual(4, nodes[5]._adjacentNodes[0]); Assert.AreEqual(2, nodes[6]._adjacentNodes.Count); Assert.AreEqual(4, nodes[6]._adjacentNodes[0]); Assert.AreEqual(7, nodes[6]._adjacentNodes[1]); Assert.AreEqual(1, nodes[7]._adjacentNodes.Count); Assert.AreEqual(6, nodes[7]._adjacentNodes[0]); } { Wire[] wires = PrepareWireArray(8); wires[0].transform.position = new Vector3(0.5f, 0, 1); wires[0]._direction = Wire.Direction.XZ_X; wires[1].transform.position = new Vector3(1.5f, 0, 1); wires[1]._direction = Wire.Direction.XZ_X; wires[2].transform.position = new Vector3(2.5f, 0, 1); wires[2]._direction = Wire.Direction.XZ_X; wires[3].transform.position = new Vector3(5.5f, 0, 5); wires[3]._direction = Wire.Direction.XZ_X; wires[4].transform.position = new Vector3(5, 0, 5.5f); wires[4]._direction = Wire.Direction.XZ_Z; wires[5].transform.position = new Vector3(5, 0, 6.5f); wires[5]._direction = Wire.Direction.XZ_Z; wires[6].transform.position = new Vector3(4.5f, 0, 6); wires[6]._direction = Wire.Direction.XZ_X; wires[7].transform.position = new Vector3(5.5f, 0, 6); wires[7]._direction = Wire.Direction.XZ_X; GraphPath graphPath = GraphPath.Build(wires); UniqueList <GraphPathNode> nodes = graphPath.GetInternalNodes_UnitTest(); // 7 // | // 8-6-9 // | // 0-1-2-3, 4-5 Assert.AreEqual(10, nodes.Count); Assert.AreEqual(1, nodes[0]._adjacentNodes.Count); Assert.AreEqual(1, nodes[0]._adjacentNodes[0]); Assert.AreEqual(2, nodes[1]._adjacentNodes.Count); Assert.AreEqual(0, nodes[1]._adjacentNodes[0]); Assert.AreEqual(2, nodes[1]._adjacentNodes[1]); Assert.AreEqual(2, nodes[2]._adjacentNodes.Count); Assert.AreEqual(1, nodes[2]._adjacentNodes[0]); Assert.AreEqual(3, nodes[2]._adjacentNodes[1]); Assert.AreEqual(1, nodes[3]._adjacentNodes.Count); Assert.AreEqual(2, nodes[3]._adjacentNodes[0]); Assert.AreEqual(2, nodes[4]._adjacentNodes.Count); Assert.AreEqual(5, nodes[4]._adjacentNodes[0]); Assert.AreEqual(6, nodes[4]._adjacentNodes[1]); Assert.AreEqual(1, nodes[5]._adjacentNodes.Count); Assert.AreEqual(4, nodes[5]._adjacentNodes[0]); Assert.AreEqual(4, nodes[6]._adjacentNodes.Count); Assert.AreEqual(4, nodes[6]._adjacentNodes[0]); Assert.AreEqual(7, nodes[6]._adjacentNodes[1]); Assert.AreEqual(8, nodes[6]._adjacentNodes[2]); Assert.AreEqual(9, nodes[6]._adjacentNodes[3]); Assert.AreEqual(1, nodes[7]._adjacentNodes.Count); Assert.AreEqual(6, nodes[7]._adjacentNodes[0]); Assert.AreEqual(1, nodes[8]._adjacentNodes.Count); Assert.AreEqual(6, nodes[8]._adjacentNodes[0]); Assert.AreEqual(1, nodes[9]._adjacentNodes.Count); Assert.AreEqual(6, nodes[9]._adjacentNodes[0]); } }