input: Write a function to create a list of dictionaries with sample data for a web application using Python's faker library. Each dictionary should contain three keys: 'name', 'email', and 'age'. The 'name' and 'email' keys should use Faker's name() and email() functions, respectively, and the 'age' key should use Faker's random_int() function with a range from 18 to 60. The function should return this list.
  assert generate_sample_data(10) == [
      {'name': 'John Doe', 'email': 'johndoe@example.com', 'age': 25},
      {'name': 'Jane Smith', 'email': 'janesmith@example.com', 'age': 45},
      {'name': 'Alice Johnson', 'email': 'alicejohnson@example.com', 'age': 30},
      {'name': 'Bob Brown', 'email': 'bobbrown@example.com', 'age': 55},
      {'name': 'Charlie Davis', 'email': 'charliedavis@example.com', 'age': 22},
      {'name': 'Eve White', 'email': 'evewhite@example.com', 'age': 38},
      {'name': 'Frank Black', 'email': 'frankblack@example.com', 'age': 48},
      {'name': 'Grace Green', 'email': 'gracegreen@example.com', 'age': 29},
      {'name': 'Henry Blue', 'email': 'henryblue@example.com', 'age': 50},
      {'name': 'Ivy Yellow', 'email': 'ivyyellow@example.com', 'age': 33}
  ]
  assert generate_sample_data(0) == []
  assert generate_sample_data(-1) == []
output: def generate_sample_data(n):
      from faker import Faker
      fake = Faker()
      return [{'name': fake.name(), 'email': fake.email(), 'age': fake.random_int(min=18, max=60)} for _ in range(max(n, 0))]