def _FibHeap__remove_node_test_2():
	heap = FibHeap()
	mylist = [5, 3, 1, 7]
	for i in mylist: heap.insert(i)
	for j in range(len(mylist)):
		heap._FibHeap__remove_node(heap.head)
		heap.print_heap()
def _FibHeap__remove_node_test_4():
	heap = FibHeap()
	mylist = [5, 3, 1, 7]
	for i in mylist: heap.insert(i)
	for j in range(len(mylist)):
		heap._FibHeap__remove_node(heap.head.left)
		print(f"After {j+1}th removal:")
		heap.print_heap()
def _FibHeap__remove_node_test_1():
	heap = FibHeap()
	for i in [1]:
		heap.insert(i)
	heap._FibHeap__remove_node(heap.head)
	print(heap.head, heap.min_node)
	assert heap.head is None

	heap = FibHeap()
	for i in [1, 2]:
		heap.insert(i)
	heap._FibHeap__remove_node(heap.head.right)
	print(heap.head, heap.min_node, heap.head.right, heap.head.left)

	heap = FibHeap()
	for i in [1, 2]:
		heap.insert(i)
	heap._FibHeap__remove_node(heap.head.left)
	print(heap.head, heap.min_node, heap.head.right, heap.head.left)

	heap = FibHeap()
	for i in [1, 2]:
		heap.insert(i)
	heap._FibHeap__remove_node(heap.head)
	print(heap.head, heap.min_node, heap.head.right, heap.head.left)
def _FibHeap__remove_node_test_5():
	heap = FibHeap()
	mylist = None
	def revert_to_initial():
		nonlocal mylist, heap
		mylist = [5, 3, 1, 7]
		heap = FibHeap()
		for i in mylist: heap.insert(i)

	revert_to_initial()
	heap._FibHeap__remove_node(heap.head.right.right)
	print("New case: ")
	heap.print_heap()

	revert_to_initial()
	heap._FibHeap__remove_node(heap.head)#.right.left)
	print("New case: ")
	heap.print_heap()
	
	revert_to_initial()
	heap._FibHeap__remove_node(heap.head.left.left)
	print("New case: ")
	heap.print_heap()

	revert_to_initial()
	heap._FibHeap__remove_node(heap.head)
	heap._FibHeap__remove_node(heap.head.right)
	heap._FibHeap__remove_node(heap.head.left)
	print("New case: ")
	heap.print_heap()