input: Write a Python program to visually summarize the Twitter data. This program should process the Twitter data to extract the relevant data fields such as tweet author, date of tweet, text, number of likes, and number of retweets. Then, it should generate three different plots using matplotlib: one for the tweet authors summarizing the number of tweets per author, one for the number of likes per tweet, and one for the number of retweets per tweet.
  assert summarize_twitter_data([{'author': 'UserA', 'date': '2023-01-01', 'text': 'Hello', 'likes': 10, 'retweets': 5}, {'author': 'UserB', 'date': '2023-01-02', 'text': 'World', 'likes': 15, 'retweets': 7}])
  assert summarize_twitter_data([{'author': 'UserC', 'date': '2022-12-31', 'text': 'Python', 'likes': 20, 'retweets': 10}, {'author': 'UserC', 'date': '2022-12-31', 'text': 'Programming', 'likes': 25, 'retweets': 12}])
output: 
  import matplotlib.pyplot as plt
  from collections import Counter
  
  def summarize_twitter_data(tweets):
      authors = [tweet['author'] for tweet in tweets]
      likes = [tweet['likes'] for tweet in tweets]
      retweets = [tweet['retweets'] for tweet in tweets]
      
      author_counts = Counter(authors)
      author_names = list(author_counts.keys())
      tweet_counts = list(author_counts.values())
      
      plt.figure(figsize=(15, 5))
      
      plt.subplot(1, 3, 1)
      plt.bar(author_names, tweet_counts)
      plt.xlabel('Authors')
      plt.ylabel('Number of Tweets')
      plt.title('Tweets per Author')
      
      plt.subplot(1, 3, 2)
      plt.scatter(range(len(likes)), likes)
      plt.xlabel('Tweet Index')
      plt.ylabel('Number of Likes')
      plt.title('Likes per Tweet')
      
      plt.subplot(1, 3, 3)
      plt.scatter(range(len(retweets)), retweets)
      plt.xlabel('Tweet Index')
      plt.ylabel('Number of Retweets')
      plt.title('Retweets per Tweet')
      
      plt.tight_layout()
      plt.show()
  