input: Write a python function to train and evaluate an SVM model on the iris dataset.
  assert isinstance(train_and_evaluate_svm(), dict)
  assert 'accuracy' in train_and_evaluate_svm()
  assert 'classification_report' in train_and_evaluate_svm()
output: def train_and_evaluate_svm():
      from sklearn import datasets
      from sklearn.model_selection import train_test_split
      from sklearn.svm import SVC
      from sklearn.metrics import accuracy_score, classification_report
      
      # Load the iris dataset
      iris = datasets.load_iris()
      X, y = iris.data, iris.target
      
      # Split the data into training and testing sets
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
      
      # Initialize and train the SVM model
      model = SVC()
      model.fit(X_train, y_train)
      
      # Make predictions
      y_pred = model.predict(X_test)
      
      # Calculate accuracy
      accuracy = accuracy_score(y_test, y_pred)
      
      # Generate classification report
      report = classification_report(y_test, y_pred, output_dict=True)
      
      # Return results as a dictionary
      return {'accuracy': accuracy, 'classification_report': report}