code: def test_normalize_unnormalize_is_identity(self):
      num_outputs = 3
      state = get_fake_pop_art_state(num_outputs)
      np.random.seed(42)
      # Draws random numbers with the same magnitude as the pop art shift and
      # scales to ensure numerical stability.
      values = np.random.randint(-10, 10, size=(100,)).astype(
          np.float32
      )
      indices = np.random.randint(0, num_outputs, size=(100,))
      np.testing.assert_allclose(
          values,
          pop_art.normalize(
              state,
              pop_art.unnormalize(state, values, indices),
              indices,
          ),
      )
      np.testing.assert_allclose(
          values,
          pop_art.unnormalize(
              state, pop_art.normalize(state, values, indices), indices
          ),
      )
  
imports: import functools
  from absl.testing import absltest
  from absl.testing import parameterized
  import chex
  import haiku
  from haiku import data_structures
  from haiku import initializers
  import jax
  import jax.nn
  import jax.numpy
  import numpy
  from rlax._src import pop_art
label_desc: Use image node_id 2 for calling the PopArtTest obj's underlying member method code with example usage: obj.test_normalize_unnormalize_is_identity() without return types