code: def test_identical_computations_different_metadata(
      self, include_metadata
  ):
      f = lambda x, y: lax.mul(lax.add(x, y), 2)
      g = lambda x, y: lax.mul(lax.add(x, y), 2)
      assert id(f) != id(g)
      computation1 = jax.jit(f).lower(1, 1).compiler_ir()
      computation2 = jax.jit(g).lower(2, 3).compiler_ir()
      devices = np.array([[jax.local_devices()[0]]])
      compile_options = compiler.get_compile_options(
          num_replicas=1, num_partitions=1
      )
      backend = xla_bridge.get_backend()
      with config.compilation_cache_include_metadata_in_key(
          include_metadata
      ):
          key1 = cache_key.get(
              computation1, devices, compile_options, backend
          )
          key2 = cache_key.get(
              computation2, devices, compile_options, backend
          )
      self.assertEqual(include_metadata, key1 != key2)
  
imports: import hashlib
  import os
  import sys
  import unittest
  import numpy
  from absl.testing import absltest
  from absl.testing import parameterized
  import jax
  from jax import lax
  from jax._src import cache_key
  from jax._src import compiler
  from jax._src import config
  from jax._src import test_util
  from jax._src import xla_bridge
  from jax._src.lib import xla_client
  from jax._src.lib import xla_extension_version
label_desc: Use image node_id 8 for calling the CacheKeyTest obj's underlying member method code with example usage: obj.test_identical_computations_different_metadata(include_metadata) without return types