input: Write a function named fizz_buzz that takes an array of integers and returns a new array where elements divisible by 3 are replaced with "Fizz", elements divisible by 5 are replaced with "Buzz", and elements divisible by both 3 and 5 are replaced with "FizzBuzz". If the element is not divisible by either 3 or 5, it remains unchanged.
  assert fizz_buzz([2, 3, 4, 5, 6, 15])==[2, "Fizz", 4, "Buzz", "Fizz", "FizzBuzz"]
  assert fizz_buzz([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])==[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz"]
  assert fizz_buzz([15, 30, 45])==["FizzBuzz", "FizzBuzz", "FizzBuzz"]
  assert fizz_buzz([])==[]
  assert fizz_buzz([1, 2, 4, 7, 8])==[1, 2, 4, 7, 8]
output: def fizz_buzz(arr):
      result = []
      for num in arr:
          if num % 3 == 0 and num % 5 == 0:
              result.append("FizzBuzz")
          elif num % 3 == 0:
              result.append("Fizz")
          elif num % 5 == 0:
              result.append("Buzz")
          else:
              result.append(num)
      return result