code: def test_train_test_condition_pps_positive_diff_fail_per_class(
      coco_visiondata_train, coco_visiondata_test
  ):
      # Arrange
      train = replace_collate_fn_visiondata(
          coco_visiondata_train, coco_collate_with_bias_one_class
      )
      condition_value = 0.4
      check = PropertyLabelCorrelationChange(
          per_class=True, random_state=42
      ).add_condition_property_pps_difference_less_than(
          condition_value, include_negative_diff=False
      )
  
      # Act
      result = check.run(
          train_dataset=train, test_dataset=coco_visiondata_test
      )
      condition_result, *_ = check.conditions_decision(result)
  
      # Assert
      assert_that(
          condition_result,
          equal_condition_result(
              is_pass=False,
              name=f"Train-Test properties' Predictive Power Score difference is less than {condition_value}",
              details="Properties and classes with PPS difference above threshold: "
              "{'RMS Contrast': {'clock': '0.83'}}",
          ),
      )
  
imports: import numpy
  import torch
  from hamcrest import assert_that, close_to, equal_to, greater_than, has_entries, has_length
  from deepchecks.vision.checks import PropertyLabelCorrelationChange
  from deepchecks.vision.utils.test_utils import replace_collate_fn_visiondata
  from tests.base.utils import equal_condition_result
label_desc: Use image node_id 20 for calling a global function with example usage: test_train_test_condition_pps_positive_diff_fail_per_class(coco_visiondata_train, coco_visiondata_test) without return types