input: Write a function to create a 3-layer artificial neural network using Python and return the computed output. The function should take three layers (input_layer, hidden_layer, and output_layer) as input parameters. Each layer is represented as a NumPy array. If any of the layers are empty, the function should return None.
  assert neural_network_3_layer(input_layer=np.array([2, 3]), hidden_layer=np.array([[0.1, 0.4], [0.8, 0.6], [0.3, 0.9]]), output_layer=np.array([0.3, 0.7])) == 0.76
  assert neural_network_3_layer(input_layer=np.array([1]), hidden_layer=np.array([[0.5]]), output_layer=np.array([0.5])) == 0.25
  assert neural_network_3_layer(input_layer=np.array([1, 2]), hidden_layer=np.array([[1], [2]]), output_layer=np.array([])) == None
  assert neural_network_3_layer(input_layer=np.array([]), hidden_layer=np.array([[0.1], [0.2]]), output_layer=np.array([0.5])) == None
  assert neural_network_3_layer(input_layer=np.array([1, 1]), hidden_layer=np.array([[0.5, 0.5]]), output_layer=np.array([1, 1])) == 1.0
  assert neural_network_3_layer(input_layer=np.array([2, 2]), hidden_layer=np.array([[1], [2], [3]]), output_layer=np.array([0.5, 0.5])) == None
output: def neural_network_3_layer(input_layer, hidden_layer, output_layer):
      if input_layer.size == 0 or hidden_layer.size == 0 or output_layer.size == 0:
          return None
      hidden_output = np.dot(input_layer, hidden_layer)
      final_output = np.dot(hidden_output, output_layer)
      return final_output