def test_merge_with_children(): fib_heapOdd = module.FibonacciHeap() fib_heapEven = module.FibonacciHeap() try: fib_heapOdd.insert(3) fib_heapOdd.insert(7) fib_heapOdd.insert(1) fib_heapOdd.insert(5) fib_heapOdd.insert(11) # consolidate will create children when needed fib_heapOdd.consolidate() fib_heapOdd.display() fib_heapEven.insert(8) fib_heapEven.insert(2) fib_heapEven.insert(4) # consolidate will create children when needed fib_heapEven.consolidate() fib_heapEven.display() fib_heapEven.merge(fib_heapOdd) fib_heapEven.display() assert (fib_heapEven.size == 8) assert (fib_heapEven.find_min() == 1) except Exception as err: print("ERROR: test_merge_with_children", err) return False else: print("OK: test_merge_with_children") return True
def test_merge(): fib_heapOdd = module.FibonacciHeap() fib_heapEven = module.FibonacciHeap() try: fib_heapOdd.insert(3) fib_heapOdd.insert(7) fib_heapOdd.insert(1) fib_heapOdd.insert(5) fib_heapOdd.insert(11) fib_heapOdd.display() fib_heapEven.insert(8) fib_heapEven.insert(2) fib_heapEven.insert(4) fib_heapEven.display() fib_heapEven.merge(fib_heapOdd) fib_heapEven.display() assert (fib_heapEven.size == 8) assert (fib_heapEven.find_min() == 1) except Exception as err: print("ERROR: test_merge", err) return False else: print("OK: test_merge") return True
def test_heap(): fib_heap = module.FibonacciHeap() try: fib_heap.insert(5) fib_heap.insert(1) fib_heap.insert(10) fib_heap.insert(0) fib_heap.insert(42) fib_heap.insert(15) fib_heap.insert(7) fib_heap.insert(19) fib_heap.insert(20) fib_heap.insert(2) fib_heap.insert(84) fib_heap.insert(50) while True: fib_heap.display() node = fib_heap.delete_min() if node is None: break except Exception as err: print("ERROR: test_heap", err) return False else: print("OK: test_heap") return True
def test_create(): try: assert module.FibonacciHeap() is not None except Exception: print("ERROR test_create") return False else: print("OK test_create") return True
def test_min_of_0(): fib_heap = module.FibonacciHeap() try: assert (fib_heap.find_min() is None) except Exception: print("ERROR: test_min_of_0") return False else: print("OK: test_min_of_0") return True
def test_insert_string(): fib_heap = module.FibonacciHeap() try: fib_heap.insert("abc") except ValueError: print("OK: test_insert_string") return False else: print("ERROR: test_insert_string") return True
def test_insert_1(): fib_heap = module.FibonacciHeap() try: fib_heap.insert(5) except Exception: print("ERROR: test_insert_1") return False else: print("OK: test_insert_1") return True
def test_min_of_1(): fib_heap = module.FibonacciHeap() try: fib_heap.insert(1) assert (fib_heap.find_min() == 1) except Exception: print("ERROR: test_min_of_1") return False else: print("OK: test_min_of_1") return True
def test_merge_small(): fib_heap1 = module.FibonacciHeap() fib_heap2 = module.FibonacciHeap() try: fib_heap1.insert(5) fib_heap1.insert(1) fib_heap1.insert(10) fib_heap1.display() fib_heap2.insert(3) fib_heap2.display() fib_heap2.merge(fib_heap1) fib_heap2.display() assert (fib_heap2.size == 4) assert (fib_heap2.find_min() == 1) except Exception as err: print("ERROR: test_merge_small", err) return False else: print("OK: test_merge_small") return True
def test_merge_None(): fib_heap1 = module.FibonacciHeap() try: fib_heap1.insert(5) fib_heap1.insert(1) fib_heap1.insert(10) fib_heap1.display() fib_heap1.merge(None) assert (fib_heap1.size == 3) except Exception as err: print("ERROR: test_merge_None", err) return False else: print("OK: test_merge_None") return True
def test_min_of_7(): fib_heap = module.FibonacciHeap() try: fib_heap.insert(4) fib_heap.insert(3) fib_heap.insert(7) fib_heap.insert(5) fib_heap.insert(2) fib_heap.insert(1) fib_heap.insert(10) fib_heap.display() assert (fib_heap.find_min() == 1) except Exception: print("ERROR: test_min_of_7") return False else: print("OK: test_min_of_7") return True
def test_extract_of_3(): fib_heap = module.FibonacciHeap() try: fib_heap.insert(5) fib_heap.insert(2) fib_heap.insert(8) fib_heap.display() assert (fib_heap.find_min() == 2) assert (fib_heap.delete_min() == 2) fib_heap.display() assert (fib_heap.size == 2) assert (fib_heap.min_node is not None) except Exception as err: print("ERROR: test_extract_of_3", err) return False else: print("OK: test_extract_of_3") return True