input: Write a function that generates sample data for a web application using Python's faker library. The output should contain three columns of data: name, email, and age. The function should return a list of dictionaries, where each dictionary represents a record with keys 'name', 'email', and 'age'.
  
  assert generate_sample_data(3) == [
      {'name': 'John Doe', 'email': 'john.doe@example.com', 'age': 25},
      {'name': 'Jane Smith', 'email': 'jane.smith@example.net', 'age': 30},
      {'name': 'Alice Johnson', 'email': 'alice.johnson@example.org', 'age': 45}
  ]
  assert generate_sample_data(1) == [
      {'name': 'Bob Williams', 'email': 'bob.williams@example.com', 'age': 50}
  ]
  assert generate_sample_data(0) == []
  assert generate_sample_data(5) == [
      {'name': 'Charlie Brown', 'email': 'charlie.brown@example.net', 'age': 22},
      {'name': 'Emily Davis', 'email': 'emily.davis@example.org', 'age': 33},
      {'name': 'Frank Miller', 'email': 'frank.miller@example.com', 'age': 44},
      {'name': 'Grace Wilson', 'email': 'grace.wilson@example.net', 'age': 55},
      {'name': 'Henry Moore', 'email': 'henry.moore@example.org', 'age': 18}
  ]
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=65)} for _ in range(n)]