code: def test_set_equality(self):
      # Empty lists
      self.assertEqual(set_equality([], []), True)
      self.assertEqual(set_equality([], [1, 2]), False)
      self.assertEqual(set_equality(["a", 1], []), False)
  
      # List with repeated elements
      self.assertEqual(set_equality([1, 2, 1, -1], [1, 2, -1]), True)
      self.assertEqual(
          set_equality([1, 2, 1, -1], [1, 2, -1, -1]), True
      )
  
      # Lists with different orders
      self.assertEqual(set_equality([1, 2, 3], [3, 1, 2]), True)
  
      # Unequal lists
      self.assertEqual(set_equality([1, 2, 1], [1, 2, -1]), False)
      self.assertEqual(set_equality([1, 2, 1, -1], [1, -1, -1]), False)
  
file_path: AIX360/tests/rule_induction/trxf/core/test_utils.py
imports: from unittest import TestCase
  from unittest.mock import MagicMock
  import pandas
  from aix360.algorithms.rule_induction.trxf.core.dnf_ruleset import DnfRuleSet
  from aix360.algorithms.rule_induction.trxf.core.utils import set_equality, batch_evaluate
label_desc: Use image node_id 1 for calling the TestRuleSet obj's underlying member method code with example usage: obj.test_set_equality() without return types