public void TC_SearchResults() { var problem = new Planner.SAS.Problem(new SASInputData(GetFilePath("TC_SearchResults.sas"))); var heuristic = new PDBHeuristic(problem); var problem2 = new Planner.SAS.Problem(new SASInputData(GetFilePath("TC_SearchResults2.sas"))); var heuristic2 = new PDBHeuristic(problem2); var heap = new RegularBinaryHeap(); var search1 = new AStarSearch(problem, heuristic, heap); var solution1 = search1.Start(); Assert.AreEqual(ResultStatus.SolutionFound, solution1); Assert.IsNotNull(search1.GetSolutionPlan()); var search2 = new AStarSearch(problem2, heuristic2, heap); var solution2 = search2.Start(); Assert.AreEqual(ResultStatus.NoSolutionFound, solution2); Assert.IsNull(search2.GetSolutionPlan()); var search3 = new AStarSearch(problem, heuristic, heap, false, new TimeSpan(0), 5000); var solution3 = search3.Start(); Assert.AreEqual(ResultStatus.TimeLimitExceeded, solution3); Assert.IsNull(search3.GetSolutionPlan()); var search4 = new AStarSearch(problem, heuristic, heap, false, new TimeSpan(0, 1, 0), 0); var solution4 = search4.Start(); Assert.AreEqual(ResultStatus.MemoryLimitExceeded, solution4); Assert.IsNull(search4.GetSolutionPlan()); }
public void TC_RegularBinaryHeap() { var heap = new RegularBinaryHeap <double>(); HeapTest(heap, GetDoubleTestList()); Assert.AreEqual("Regular Binary Heap", heap.GetName()); }
public static ISearchHeap getHeapByParam(int param) { ISearchHeap heapStructure = null; switch (param) { case 1: heapStructure = new RedBlackTreeHeap(); break; case 2: heapStructure = new FibonacciHeap(); break; case 3: heapStructure = new FibonacciHeap2(); break; case 4: heapStructure = new RegularBinaryHeap(); break; case 5: heapStructure = new RegularTernaryHeap(); break; case 6: heapStructure = new BinomialHeap(); break; case 7: heapStructure = new LeftistHeap(); break; default: break; } return(heapStructure); //heapStructure = new Heaps.RedBlackTreeHeap(); //ISearchHeap heapStructure = new Heaps.FibonacciHeap1(); //ISearchHeap heapStructure = new Heaps.FibonacciHeap2(); //ISearchHeap heapStructure = new Heaps.RegularBinaryHeap(); //ISearchHeap heapStructure = new Heaps.RegularTernaryHeap(); //ISearchHeap heapStructure = new Heaps.BinomialHeap(); //ISearchHeap heapStructure = new Heaps.LeftistHeap(); }