input: Write a function that generates a dictionary where the keys are numbers between 1 and 15 (both included) and the values are the square of the keys. The function should return the dictionary. If an empty dictionary is input, the function should return a dictionary where all keys are numbers between 1 and 15 mapped to their squares.
  assert generate_square_dict() == {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225}
  assert generate_square_dict({}) == {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225}
output: def generate_square_dict(input_dict=None):
      if input_dict is None:
          input_dict = {}
      if not input_dict:
          return {i: i**2 for i in range(1, 16)}
      return input_dict