code: def testProperties(self):
      if context.num_gpus() < 1 and context.executing_eagerly():
          self.skipTest(
              "A GPU is not available for this test in eager mode."
          )
  
      mirrored = _make_mirrored()
      v = mirrored.values[0]
      self.assertEqual(v.name, mirrored.name)
      self.assertEqual(v.dtype, mirrored.dtype)
      self.assertEqual(v.shape, mirrored.shape)
  
imports: import os
  from absl.testing import parameterized
  from tensorflow.core.protobuf import config_pb2
  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.distribute import tpu_values
  from tensorflow.python.distribute import values
  from tensorflow.python.eager import context
  from tensorflow.python.eager import test
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import variable_scope
  from tensorflow.python.training import saver
label_desc: Use image node_id 2 for calling the MirroredVariableTest obj's underlying member method code with example usage: obj.testProperties() without return types