input: Write a python function to train a Support Vector Machine (SVM) model and return the accuracy and predictions.
  assert isinstance(train_svm(X, y), tuple)
  assert len(train_svm(X, y)) == 2
  assert isinstance(train_svm(X, y)[0], float)
  assert isinstance(train_svm(X, y)[1], list)
output: def train_svm(X, y):
      from sklearn.svm import SVC
      from sklearn.model_selection import train_test_split
      from sklearn.metrics import accuracy_score
      
      # Split the data into training and test sets
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
      
      # Initialize the Support Vector Machine classifier
      clf = SVC()
      
      # Train the classifier
      clf.fit(X_train, y_train)
      
      # Make predictions on the test set
      predictions = clf.predict(X_test)
      
      # Calculate the accuracy
      accuracy = accuracy_score(y_test, predictions)
      
      return accuracy, predictions.tolist()