code: def testBasicEager(self):
      v0 = variables.Variable(1.0, name="v0")
      v1 = variables.Variable(2.0, name="v1")
  
      ema = moving_averages.ExponentialMovingAverage(0.25, name="foo")
      op = ema.apply([v0, v1])
      if not context.executing_eagerly():
          self.evaluate(variables.global_variables_initializer())
          self.evaluate(op)
  
      self.evaluate(v0.assign(2.0))
      self.evaluate(v1.assign(4.0))
  
      self.evaluate(ema.apply([v0, v1]))
  
      self.assertEqual("foo", ema.name)
      self.assertEqual("v0/foo", ema.average_name(v0))
      self.assertEqual("v1/foo", ema.average_name(v1))
  
      self.assertAllEqual(self.evaluate(ema.average(v0)), 1.75)
      self.assertAllEqual(self.evaluate(ema.average(v1)), 3.5)
  
imports: import numpy
  from tensorflow.python.compiler.xla.experimental import xla_sharding
  from tensorflow.python.eager import context
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_state_ops
  from tensorflow.python.ops import variable_scope
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
  from tensorflow.python.training import moving_averages
  from tensorflow.python.training import saver
label_desc: Use image node_id 19 for calling the ExponentialMovingAverageTest obj's underlying member method code with example usage: obj.testBasicEager() without return types