input: Write a function to demonstrate the functionality of the FileSystem class, including saving task data, deleting task data, finding task data by ID, finding task data for multiple IDs, finding all task data, and getting task data for a specific ID without raising an error if the data is not found. Additionally, create assert statements to validate the results of each operation.
  
  
  from jsub.error import TaskNotFoundError
  
  def test_file_system():
      # Initialize FileSystem instance
      fs = FileSystem({'taskDir': '~/jsub/'})
  
      # Save task data
      task_data1 = {'name': 'Task1', 'description': 'This is task 1'}
      fs.save_task(task_data1)
  
      task_data2 = {'name': 'Task2', 'description': 'This is task 2'}
      fs.save_task(task_data2)
  
      # Find task data by ID
      found_task1 = fs.find_by_id(task_data1['id'])
      assert found_task1 == task_data1
  
      # Find task data for multiple IDs
      found_tasks = fs.find_by_ids([task_data1['id'], task_data2['id']])
      assert found_tasks == [task_data1, task_data2]
  
      # Find all task data
      all_tasks = fs.all_task_data()
      assert all_tasks == [task_data1, task_data2]
  
      # Get task data for a specific ID without raising an error
      task_or_none = fs.task_data(task_data1['id'])
      assert task_or_none == task_data1
  
      # Delete task data
      fs.delete_task(task_data1['id'])
      try:
          deleted_task = fs.find_by_id(task_data1['id'])
      except TaskNotFoundError:
          deleted_task = None
      assert deleted_task is None
  
  
  ### Explanation:
  - The function `test_file_system` demonstrates the usage of the `FileSystem` class by saving two tasks, finding them by ID, finding them as a list of IDs, retrieving all tasks, and then deleting one task.
  - `assert` statements are used to check that the results of each operation match the expected values.
output: def test_file_system():
      fs = FileSystem({'taskDir': '~/jsub/'})
  
      task_data1 = {'name': 'Task1', 'description': 'This is task 1'}
      fs.save_task(task_data1)
  
      task_data2 = {'name': 'Task2', 'description': 'This is task 2'}
      fs.save_task(task_data2)
  
      found_task1 = fs.find_by_id(task_data1['id'])
      assert found_task1 == task_data1
  
      found_tasks = fs.find_by_ids([task_data1['id'], task_data2['id']])
      assert found_tasks == [task_data1, task_data2]
  
      all_tasks = fs.all_task_data()
      assert all_tasks == [task_data1, task_data2]
  
      task_or_none = fs.task_data(task_data1['id'])
      assert task_or_none == task_data1
  
      fs.delete_task(task_data1['id'])
      try:
          deleted_task = fs.find_by_id(task_data1['id'])
      except TaskNotFoundError:
          deleted_task = None
      assert deleted_task is None