public void MapTest() { BayesianSpaceGenerator gen = new BayesianSpaceGenerator(); gen.DungeonGraph = new SpaceGraph(); for (int i = 0; i < 4; i++) { gen.DungeonGraph.CreateNode(i); } List <(int, int, int)> roomParams = new List <(int, int, int)>() { (0, 0, 1), (0, 1, 3), (1, 2, 1), (0, 2, 1) }; gen.DungeonGraph.AllNodes.ForEach(node => { node.CPDistance = roomParams[node.Id].Item1; node.Depth = roomParams[node.Id].Item2; node.MaxNeighbours = roomParams[node.Id].Item3; }); gen.CriticalPathMapper(gen.DungeonGraph, 3); gen.DungeonGraph.ReducePotentialValues(); Trace.WriteLine("Before"); gen.DungeonGraph.AllNodes.ForEach(room => Trace.WriteLine(room.PrintConnections())); // 2 // | // 0 --- 1 --- 3 is the only valid config // // gen.Map(); Trace.WriteLine("After"); gen.DungeonGraph.AllNodes.ForEach(room => Trace.WriteLine(room.PrintConnections())); CollectionAssert.AreEqual(new int[] { 1, 0, 2, 3, 1, 1 }.ToList(), gen.DungeonGraph.AllNodes.SelectMany(x => x.Values.SelectMany(y => y.Select(z => z.Id))).ToList()); }
public void UnsolvableMapTest() { BayesianSpaceGenerator gen = new BayesianSpaceGenerator(); gen.DungeonGraph = new SpaceGraph(); for (int i = 0; i < 4; i++) { gen.DungeonGraph.CreateNode(i); } List <(int, int, int)> roomParams = new List <(int, int, int)>() { (0, 0, 1), (0, 1, 2), (1, 2, 1), (0, 2, 1) }; gen.DungeonGraph.AllNodes.ForEach(node => { node.CPDistance = roomParams[node.Id].Item1; node.Depth = roomParams[node.Id].Item2; node.MaxNeighbours = roomParams[node.Id].Item3; }); gen.CriticalPathMapper(gen.DungeonGraph, 3); gen.DungeonGraph.ReducePotentialValues(); Trace.WriteLine("Before"); gen.DungeonGraph.AllNodes.ForEach(room => Trace.WriteLine(room.PrintConnections())); // 2 // // 0 --- 1 --- 3 No valid configs // // Assert.ThrowsException <ArgumentException>(gen.Map); }
public void TestInitialize() { testGraph = new SpaceGraph(); for (int i = 0; i < rooms; i++) { testGraph.CreateNode(i); } generator = new BayesianSpaceGenerator(); testGraph = generator.CriticalPathMapper(testGraph, cpl); }