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 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 TestInitialize() { testGraph = new SpaceGraph(); for (int i = 0; i < rooms; i++) { testGraph.CreateNode(i); } generator = new BayesianSpaceGenerator(); testGraph = generator.CriticalPathMapper(testGraph, cpl); }
public static void Main() { Debug.WriteLine("Starting Bayesian Space Generator..."); if (enableUserInput) { BayesianSpaceGenerator spaceGen = new BayesianSpaceGenerator(); string value = "10"; if (Dialog.InputBox("Bayesian PDG", "Enter a Dungeon size between 2-27:", ref value) == DialogResult.OK) { SpaceGraph graph = spaceGen.RunInference(Int32.Parse(value), defaultNetPath); if (graph != null) { GenerateMap(graph); } else { MessageBox.Show("Constraints imposed by the sample could not be satisfied. Try again.", "Error: Bad Sample", 0); } } } else { for (int i = 2; i < 27; i++) { Stopwatch netWatch = new Stopwatch(); BayesianSpaceGenerator spaceGen = new BayesianSpaceGenerator(); netWatch.Start(); SpaceGraph experimentGraph = spaceGen.RunInference(i, defaultNetPath); netWatch.Stop(); if (experimentGraph != null) { netGenerationTime = netWatch.Elapsed.TotalSeconds; GenerateMap(experimentGraph); } } } //FileInfo[] files = new DirectoryInfo("Resources\\Maps").GetFiles("*.yaml"); //foreach (var map in files) //{ // GenerateStaticMap(map.Name); //} }