input: Write a python function to compile and fit a neural network model with specified layers and parameters.
  assert compile_and_fit_model(X, y).history['accuracy'][-1] >= 0.8
  assert compile_and_fit_model(X, y, epochs=50).history['accuracy'][-1] >= 0.7
  assert compile_and_fit_model(X, y, batch_size=16).history['accuracy'][-1] >= 0.75
output: def compile_and_fit_model(X, y, epochs=10, batch_size=32):
      from tensorflow.keras.models import Sequential
      from tensorflow.keras.layers import Dense
      from tensorflow.keras.optimizers import Adam
  
      model = Sequential([
          Dense(64, activation='relu', input_shape=(X.shape[1],)),
          Dense(32, activation='relu'),
          Dense(1, activation='sigmoid')
      ])
      
      model.compile(optimizer=Adam(), 
                    loss='binary_crossentropy', 
                    metrics=['accuracy'])
      
      history = model.fit(X, y, epochs=epochs, batch_size=batch_size, validation_split=0.2)
      
      return history