code: def test_cross_replica_scatter_add(self, axes, expected):
      shape = (2, 2, 3)
      source = np.zeros(shape)
      fn = functools.partial(
          pop_art._cross_replica_scatter_add, axis_name=axes
      )
      mapped_fn = jax.pmap(fn, axis_name="i", backend="cpu")
      mapped_fn = jax.pmap(mapped_fn, axis_name="j", backend="cpu")
  
      updates = np.array(
          [
              [[1.0, 0.0, 0.0], [0.0, 5.0, 0.0]],
              [[0.0, 0.0, 9.0], [0.0, 0.0, 0.0]],
          ]
      )
      indices = np.array(
          [[[2, 2, 2], [1, 1, 1]], [[0, 0, 0], [0, 1, 2]]]
      )
      np.testing.assert_equal(
          mapped_fn(source, indices, updates), expected
      )
  
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 1 for calling the PopArtTest obj's underlying member method code with example usage: obj.test_cross_replica_scatter_add(axes, expected) without return types