code: def testEndToEnd(self, tuple_path):
      # N.B. typically these would all have the same shape, but for testing
      # convenience we use different shapes here to exercise the encoder/decoder
      # logic a bit more.
      mean = 0.0
      sem = (np.array([1.0, 2.0]),)
      std = np.array([1.0, 2.0, 3.0, 4.0]).reshape((2, 2))
      sestd = np.array([], dtype=np.float32)
      name = "test"
  
      array_strs = ground_truth_encoding.save_ground_truth_part(
          name=name,
          tuple_path=tuple_path,
          mean=mean,
          sem=sem,
          std=std,
          sestd=sestd,
      )
      module_source = (
          ground_truth_encoding.get_ground_truth_module_source(
              target_name="target",
              command_str="",
              array_strs=array_strs,
          )
      )
      module_spec = importlib.util.spec_from_loader(
          "module", loader=None
      )
      module = importlib.util.module_from_spec(module_spec)
      exec(module_source, module.__dict__)  # pylint: disable=exec-used
  
      (
          loaded_mean,
          loaded_sem,
          loaded_std,
          loaded_sestd,
      ) = ground_truth_encoding.load_ground_truth_part(
          module=module,
          name=name,
          tuple_path=tuple_path,
      )
  
      self.assertAllEqual(loaded_mean, mean)
      self.assertAllEqual(loaded_sem, sem)
      self.assertAllEqual(loaded_std, std)
      self.assertAllEqual(loaded_sestd, sestd)
  
imports: import importlib
  from absl.testing import parameterized
  import numpy
  from tensorflow_probability.python.internal import test_util
  from inference_gym.internal import ground_truth_encoding
label_desc: Use image node_id 1 for calling the GroundTruthEncodingTest obj's underlying member method code with example usage: obj.testEndToEnd(tuple_path) without return types