Example #1
0
 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);
     }
 }
Example #2
0
        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]);
            }
        }