input: Write a function to solve the "Tower of Hanoi" game for a given number of disks. The function should print the sequence of moves required to shift all disks from the start rod to the end rod, following the rules of the game. If only one disk is present, it should directly move the disk from the start rod to the end rod.
  def solveTowerOfHanoi(num_disks, start_rod = 'A', end_rod = 'C', aux_rod = 'B'): 
      if num_disks == 1: 
          print("Move disk 1 from rod", start_rod, "to rod", end_rod) 
          return
      solveTowerOfHanoi(num_disks - 1, start_rod, aux_rod, end_rod) 
      print("Move disk", num_disks, "from rod", start_rod, "to rod", end_rod) 
      solveTowerOfHanoi(num_disks - 1, aux_rod, end_rod, start_rod) 
    
  # Test cases
  assert solveTowerOfHanoi(1) # Should print: Move disk 1 from rod A to rod C
  assert solveTowerOfHanoi(2) # Should print sequence of moves for 2 disks
  assert solveTowerOfHanoi(3) # Should print sequence of moves for 3 disks
  assert solveTowerOfHanoi(4) # Should print sequence of moves for 4 disks
output: def solveTowerOfHanoi(num_disks, start_rod = 'A', end_rod = 'C', aux_rod = 'B'): 
      if num_disks == 1: 
          print("Move disk 1 from rod", start_rod, "to rod", end_rod) 
          return
      solveTowerOfHanoi(num_disks - 1, start_rod, aux_rod, end_rod) 
      print("Move disk", num_disks, "from rod", start_rod, "to rod", end_rod) 
      solveTowerOfHanoi(num_disks - 1, aux_rod, end_rod, start_rod)