input: Write a function to generate 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 take an integer parameter representing the number of rows to generate. If the input integer is zero or negative, the function should return an empty list.
  assert generate_sample_data(3) == [('John Doe', 'john.doe@example.com', 30), ('Jane Smith', 'jane.smith@example.com', 25), ('Bob Johnson', 'bob.johnson@example.com', 45)]
  assert generate_sample_data(0) == []
  assert generate_sample_data(-1) == []
output: def generate_sample_data(n):
      if n <= 0:
          return []
      from faker import Faker
      fake = Faker()
      return [(fake.name(), fake.email(), fake.random_int(min=18, max=65)) for _ in range(n)]