code: def testCrossReplicaContextGraph(self, distribution):
      with distribution.scope():
          w_assign, w_apply, ema_w = self._ema_replica_fn_graph()
      self.assertEqual(ema_w.name, "w/ExponentialMovingAverage:0")
      self.evaluate(variables.global_variables_initializer())
      self.evaluate(distribution.experimental_local_results(w_apply))
      self.evaluate(distribution.experimental_local_results(w_assign))
      self.evaluate(distribution.experimental_local_results(w_apply))
      self.assertAllClose(
          self.evaluate(distribution.experimental_local_results(ema_w))[
              0
          ],
          [0.89999998],
      )
  
imports: from absl.testing import parameterized
  from tensorflow.python.distribute import combinations
  from tensorflow.python.distribute import strategy_combinations
  from tensorflow.python.distribute import strategy_test_lib
  from tensorflow.python.distribute import test_util
  from tensorflow.python.eager import def_function
  from tensorflow.python.eager import test
  from tensorflow.python.framework import constant_op
  from tensorflow.python.ops import variables
  from tensorflow.python.training import moving_averages
label_desc: Use image node_id 5 for calling the ExponentialMovingAverageTest obj's underlying member method code with example usage: obj.testCrossReplicaContextGraph(distribution) without return types