input: Write a python function to create and train a simple neural network using TensorFlow and NumPy, and make predictions.
  assert np.allclose(train_and_predict([[1,0],[0,1]], [[1,1]]), [[0.5, 0.5], [0.5, 0.5]], atol=0.1)
  assert np.allclose(train_and_predict([[0,0],[1,1]], [[0,0]]), [[0.5, 0.5], [0.5, 0.5]], atol=0.1)
output: import tensorflow as tf
  import numpy as np
  
  def train_and_predict(X_train, X_test):
      # Convert input data to numpy arrays
      X_train = np.array(X_train, dtype=np.float32)
      X_test = np.array(X_test, dtype=np.float32)
      
      # Define a simple neural network model
      model = tf.keras.Sequential([
          tf.keras.layers.Dense(2, activation='sigmoid', input_shape=(2,))
      ])
      
      # Compile the model
      model.compile(optimizer='adam', loss='mean_squared_error')
      
      # Train the model
      model.fit(X_train, X_train, epochs=500, verbose=0)
      
      # Make predictions
      predictions = model.predict(X_test)
      
      return predictions.tolist()