code: def test_no_error(
      adult_split_dataset_and_model, avocado_split_dataset_and_model
  ):
      # Arrange
      tasks = [
          (
              *adult_split_dataset_and_model,
              ["sex", "age"],
              ["education", "capital-gain"],
          ),
          (
              *avocado_split_dataset_and_model,
              ["type", "year"],
              ["region", "Total Bags"],
          ),
      ]
  
      def run_task(
          train,
          test,
          model,
          protected_feat_to_test,
          control_feat_to_test,
      ):
          train = train.sample()
          test = test.sample()
  
          for feat1 in protected_feat_to_test:
              check = PerformanceBias(protected_feature=feat1)
              check.run(test, model)
  
              for feat2 in control_feat_to_test:
                  check = PerformanceBias(
                      protected_feature=feat1, control_feature=feat2
                  )
                  check.run(test, model)
  
      # Act
      for task in tasks:
          run_task(*task)
  
      # Assert
      pass
  
file_path: deepchecks/tests/tabular/checks/model_evaluation/performance_bias_test.py
imports: import numpy
  import pandas
  from hamcrest import all_of, any_of, assert_that, calling, close_to, equal_to, has_entries, has_items, has_length, has_properties, has_property, raises
  from sklearn.metrics import f1_score, make_scorer
  from deepchecks import ConditionCategory
  from deepchecks.core.errors import DeepchecksNotSupportedError, DeepchecksValueError
  from deepchecks.tabular.checks.model_evaluation import PerformanceBias
  from tests.base.utils import equal_condition_result
label_desc: Use image node_id 1 for calling a global function with example usage: test_no_error(adult_split_dataset_and_model, avocado_split_dataset_and_model) without return types