public void Constructor_PassedNonSqaureMatrix_Throws()
        {
            StaticState.AreaEdge[,] e1 = new StaticState.AreaEdge[5, 6];
            StaticState.AreaNode[] n1 = new StaticState.AreaNode[5];

            Assert.Throws <ArgumentException>(() => new StaticState(n1, e1));
        }
        public void Constructor_PassedMismatchingSizeArrays_Throws()
        {
            StaticState.AreaEdge[,] e1 = new StaticState.AreaEdge[5, 5];
            StaticState.AreaNode[] n1 = new StaticState.AreaNode[4];

            Assert.Throws <ArgumentException>(() => new StaticState(n1, e1));
        }
        public void Constructor_PassedNullArrays_Throws()
        {
            StaticState.AreaEdge[,] e1 = new StaticState.AreaEdge[5, 5];
            StaticState.AreaNode[] n1 = new StaticState.AreaNode[5];

            Assert.Throws <ArgumentNullException>(() => new StaticState(n1, null));
            Assert.Throws <ArgumentNullException>(() => new StaticState(n1, null));
            Assert.Throws <ArgumentNullException>(() => new StaticState(null, null));
        }
        public static Mock <StaticState> NewStaticStateMock()
        {
            var n = new StaticState.AreaNode[100];
            var e = new StaticState.AreaEdge[100, 100];

            for (int i = 0; i < 100; i++)
            {
                n[i] = new StaticState.AreaNode(i, i, 0, 0, false, 0, 0, false, false, false, false, false, false, false);
                for (int j = 0; j < 100; j++)
                {
                    e[i, j] = new StaticState.AreaEdge(i, j, 0, 0, 0, 0, false, false, false, false, false, false, false, false);
                }
            }
            return(new Mock <StaticState>(n, e));
        }
        private static StaticState.AreaEdge[,] PrepareEdgeDataFromHardCode()
        {
            StaticState.AreaEdge[,] toRet = new StaticState.AreaEdge[numNodes, numNodes];
            for (int i = 0; i < numNodes; i++)
            {
                for (int j = 0; j < numNodes; j++)
                {
                    toRet[i, j] = new StaticState.AreaEdge(i, j, 0, 0, 0, Int32.MaxValue, false, false, false, false, false, false, false, false);  // Defaults
                }
            }
            // Replace all the ones with actual data! Note 'distance' and stuff is not going to be tested since it is too tedious. Auto generation of SS should fill this in though.
            // int fromNodeId, int toNodeId, float distance, float minimumHearableVolume, int combatAdvantage, int relativeCoverLevel, bool hasControlOver, bool walkTraversability, bool crawlTraversability, bool climbTraversability, bool vaultTraversability, bool fullVisibility, bool partialVisibility, bool travelVisibility
            toRet[0, 1] = new StaticState.AreaEdge(0, 1, 5, 5, 3, 5, false, true, false, false, false, true, false, false);
            toRet[0, 3] = new StaticState.AreaEdge(0, 3, 5, 5, 6, 5, true, true, false, false, false, true, false, false);
            toRet[1, 0] = new StaticState.AreaEdge(1, 0, 5, 5, -3, 0, false, true, false, false, false, true, false, false);
            toRet[3, 0] = new StaticState.AreaEdge(3, 0, 5, 5, -6, 0, false, true, false, false, false, true, false, false);
            toRet[3, 4] = new StaticState.AreaEdge(3, 4, 5, 5, 0, 1, false, true, false, false, false, true, false, false);
            toRet[4, 3] = new StaticState.AreaEdge(4, 3, 5, 5, 0, 1, false, true, false, false, false, true, false, false);
            toRet[2, 1] = new StaticState.AreaEdge(2, 1, 5, 5, 4, 4, false, true, false, false, false, true, false, false);
            toRet[1, 2] = new StaticState.AreaEdge(1, 2, 5, 5, -4, 0, false, true, false, false, false, true, false, false);
            toRet[5, 1] = new StaticState.AreaEdge(5, 1, 7, 4, 5, 8, false, false, false, false, false, true, false, false);
            toRet[1, 5] = new StaticState.AreaEdge(1, 5, 7, 3, -5, 2, false, false, false, false, false, true, false, false);
            toRet[2, 5] = new StaticState.AreaEdge(2, 5, 5, 5, 0, 0, false, true, false, false, false, true, false, false);
            toRet[5, 2] = new StaticState.AreaEdge(5, 2, 5, 5, 0, 0, false, true, false, false, false, true, false, false);
            toRet[5, 6] = new StaticState.AreaEdge(5, 6, 5, 5, 2, 1, false, true, false, false, false, true, false, false);
            toRet[6, 5] = new StaticState.AreaEdge(6, 5, 5, 5, -2, 0, false, true, false, false, false, true, false, false);
            toRet[6, 7] = new StaticState.AreaEdge(6, 7, 5, 5, 6, 3, true, true, false, false, false, true, false, false);
            toRet[7, 6] = new StaticState.AreaEdge(7, 6, 5, 5, -6, 0, false, true, false, false, false, true, false, false);
            toRet[6, 8] = new StaticState.AreaEdge(6, 8, 5, 5, 0, 0, false, true, false, false, false, true, false, false);
            toRet[8, 6] = new StaticState.AreaEdge(8, 6, 5, 5, 0, 0, false, true, false, false, false, true, false, false);
            toRet[7, 8] = new StaticState.AreaEdge(7, 8, 5, 5, 1, 0, false, true, false, false, false, true, false, false);
            toRet[8, 7] = new StaticState.AreaEdge(8, 7, 5, 5, -1, 0, false, true, false, false, false, true, false, false);
            toRet[8, 9] = new StaticState.AreaEdge(8, 9, 5, 5, 0, 0, false, false, false, false, false, true, false, false);
            toRet[9, 8] = new StaticState.AreaEdge(9, 8, 5, 5, 0, 0, false, false, false, false, false, true, false, false);

            return(toRet);
        }