input: Write a function to implement a machine learning algorithm using Support Vector Classifier (SVC) from scikit-learn to categorize a dataset of records with features and labels. If the dataset is empty, the function should return None. The function should fit the model on the training data and then make a prediction for a given data point. If the dataset is not empty, the function should return the predicted label for the given data point.
  
  
  import numpy as np
  from sklearn.svm import SVC
  
  def categorize_dataset(training_data, predict_data):
      if not training_data:
          return None
      
      X = []
      y = []
      for data in training_data:
          X.append(data['features'])
          y.append(data['label'])
      
      clf = SVC()
      clf.fit(X, y)
      
      predicted_label = clf.predict([predict_data])
      return predicted_label[0]
  
  # Test cases
  assert categorize_dataset([
      {"label": "apple", "features": [1, 1, 0]}, 
      {"label": "banana", "features": [0, 1, 1]}, 
      {"label": "lemon", "features": [0, 0, 1]}, 
      {"label": "orange", "features": [1, 0, 0]}, 
      {"label": "pear", "features": [0, 1, 0]}, 
  ], [1, 0, 1]) == 'banana'
  
  assert categorize_dataset([], [1, 0, 1]) is None
  assert categorize_dataset([
      {"label": "apple", "features": [1, 1, 0]}, 
      {"label": "banana", "features": [0, 1, 1]}, 
      {"label": "lemon", "features": [0, 0, 1]}, 
      {"label": "orange", "features": [1, 0, 0]}, 
      {"label": "pear", "features": [0, 1, 0]}, 
  ], [0, 0, 0]) == 'lemon'
  assert categorize_dataset([
      {"label": "apple", "features": [1, 1, 0]}, 
      {"label": "banana", "features": [0, 1, 1]}, 
      {"label": "lemon", "features": [0, 0, 1]}, 
      {"label": "orange", "features": [1, 0, 0]}, 
      {"label": "pear", "features": [0, 1, 0]}, 
  ], [1, 1, 1]) == 'apple'
  assert categorize_dataset([
      {"label": "apple", "features": [1, 1, 0]}, 
      {"label": "banana", "features": [0, 1, 1]}, 
      {"label": "lemon", "features": [0, 0, 1]}, 
      {"label": "orange", "features": [1, 0, 0]}, 
      {"label": "pear", "features": [0, 1, 0]}, 
  ], [0, 1, 0]) == 'pear'
  
output: def categorize_dataset(training_data, predict_data):
      if not training_data:
          return None
      
      X = []
      y = []
      for data in training_data:
          X.append(data['features'])
          y.append(data['label'])
      
      clf = SVC()
      clf.fit(X, y)
      
      predicted_label = clf.predict([predict_data])
      return predicted_label[0]