input: Write a function to design and implement a neural network in Python to predict the price of a house given a set of features. The function should take an input array of features, create a neural network model using Keras, compile the model, and fit it to the provided data. Ensure that the model architecture includes at least two hidden layers with ReLU activations and an output layer with a linear activation. The function should return the trained model.
  
  from keras.models import Sequential
  from keras.layers import Dense
  import numpy as np
  
  def house_price_predictor(features):
      model = Sequential()
      model.add(Dense(64, input_dim=features.shape[1], activation='relu'))
      model.add(Dense(32, activation='relu'))
      model.add(Dense(1, activation='linear'))
      model.compile(loss='mse', optimizer='adam', metrics=['mse'])
      model.fit(features, batch_size=3, epochs=200)
      return model
  
  # Test cases
  assert house_price_predictor(np.array([[0.8, 0.4, 0.7]])).evaluate(np.array([[0.8, 0.4, 0.7]]))[1] == 0.0
  assert house_price_predictor(np.array([[0.2, 0.9, 0.3]])).evaluate(np.array([[0.2, 0.9, 0.3]]))[1] == 0.0
  assert house_price_predictor(np.array([[0.5, 0.5, 0.5]])).evaluate(np.array([[0.5, 0.5, 0.5]]))[1] == 0.0
  assert house_price_predictor(np.array([[1.0, 0.0, 0.0]])).evaluate(np.array([[1.0, 0.0, 0.0]]))[1] == 0.0
  assert house_price_predictor(np.array([[0.0, 1.0, 0.0]])).evaluate(np.array([[0.0, 1.0, 0.0]]))[1] == 0.0
output: def house_price_predictor(features):
      model = Sequential()
      model.add(Dense(64, input_dim=features.shape[1], activation='relu'))
      model.add(Dense(32, activation='relu'))
      model.add(Dense(1, activation='linear'))
      model.compile(loss='mse', optimizer='adam', metrics=['mse'])
      model.fit(features, batch_size=3, epochs=200)
      return model