input: Write a python function to preprocess data using StandardScaler and split it into train and test sets.
  assert isinstance(preprocess_and_split_data(pd.DataFrame(np.random.randn(100, 5), columns=['A', 'B', 'C', 'D', 'approved'])), tuple)
  assert len(preprocess_and_split_data(pd.DataFrame(np.random.randn(100, 5), columns=['A', 'B', 'C', 'D', 'approved'])))==4
  assert preprocess_and_split_data(pd.DataFrame(np.random.randn(100, 5), columns=['A', 'B', 'C', 'D', 'approved']))[0].shape[1] == 4
output: def preprocess_and_split_data(df):
      from sklearn.preprocessing import StandardScaler
      from sklearn.model_selection import train_test_split
  
      # Separate features and target
      X = df.drop(columns=['approved'])
      y = df['approved']
  
      # Standardize the features
      scaler = StandardScaler()
      X_scaled = scaler.fit_transform(X)
  
      # Split the data into train and test sets
      X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
  
      return X_train, X_test, y_train, y_test