code: def _run_cache_key_equal_fixture(self, fixture, compare_values):
      case_a = fixture()
      case_b = fixture()
  
      for a, b in itertools.combinations_with_replacement(
          range(len(case_a)), 2
      ):
          self._compare_equal(case_a[a], case_b[b], compare_values)
  
imports: from __future__ import annotations
  import itertools
  import random
  import re
  import sys
  import sqlalchemy
  from .base import TestBase
  from ..None import config
  from ..None import mock
  from ..assertions import eq_
  from ..assertions import ne_
  from ..util import adict
  from ..util import drop_all_tables_from_metadata
  from ...None import event
  from ...None import util
  from ...schema import sort_tables_and_constraints
  from ...sql import visitors
  from ...sql.elements import ClauseElement
label_desc: Use image node_id 3 for calling the CacheKeyFixture obj's underlying member method code with example usage: obj._run_cache_key_equal_fixture(fixture, compare_values) without return types