input: Write a function to create a 3-layer artificial neural network using Python and print the outcome. Assume the input, hidden, and output layers are provided as numpy arrays. If the input is an empty array, return an empty array.
  
  
  import numpy as np
  
  def three_layer_nn(input_layer, hidden_layer, output_layer):
      if len(input_layer) == 0:
          return np.array([])
      hidden_layer_output = np.dot(input_layer, hidden_layer)
      output = np.dot(hidden_layer_output, output_layer)
      return output
  
  # Test cases
  assert np.array_equal(three_layer_nn(np.array([2, 3]), np.array([[0.1, 0.4], [0.8, 0.6], [0.3, 0.9]]), np.array([0.3, 0.7])), np.array([1.19]))
  assert np.array_equal(three_layer_nn(np.array([]), np.array([[0.1, 0.4], [0.8, 0.6], [0.3, 0.9]]), np.array([0.3, 0.7])), np.array([]))
  assert np.array_equal(three_layer_nn(np.array([1]), np.array([[0.5]]), np.array([0.2])), np.array([0.1]))
  assert np.array_equal(three_layer_nn(np.array([4, 5]), np.array([[0.2, 0.3], [0.6, 0.4]]), np.array([0.1, 0.8])), np.array([3.4]))
  assert np.array_equal(three_layer_nn(np.array([0, 0]), np.array([[0.1, 0.2], [0.3, 0.4]]), np.array([0.5, 0.6])), np.array([0.0]))
  
output: def three_layer_nn(input_layer, hidden_layer, output_layer):
      if len(input_layer) == 0:
          return np.array([])
      hidden_layer_output = np.dot(input_layer, hidden_layer)
      output = np.dot(hidden_layer_output, output_layer)
      return output