code: def setUpClass(cls) -> None:
      super().setUpClass()
  
      # run1 -> context {'subset': 'train'} -> Image[]
      #      |                              -> integers
      #      |                              -> floats
      #      -> context {'subset': 'val'}   -> floats
      # ------------------------------------------------
      # run2 -> context {'subset': 'train'} -> Image
      #      |                              -> floats
      #      -> context {'subset': 'val'}   -> floats
  
      run1 = cls.create_run(system_tracking_interval=None)
      cls.run1_hash = run1.hash
      images = generate_image_set(
          img_count=2, caption_prefix=f"Image 0"
      )
      run1.track(
          images, name="image_lists", context={"subset": "train"}
      )
      run1.track(
          random.random(), name="floats", context={"subset": "train"}
      )
      run1.track(
          random.randint(100, 200),
          name="integers",
          context={"subset": "train"},
      )
      run1.track(
          random.random(), name="floats", context={"subset": "val"}
      )
  
      run2 = cls.create_run(system_tracking_interval=None)
      run2.track(
          images[0], name="single_images", context={"subset": "val"}
      )
      run2.track(
          random.random(), name="floats", context={"subset": "train"}
      )
      run2.track(
          random.random(), name="floats", context={"subset": "val"}
      )
      cls.run2_hash = run2.hash
  
imports: from parameterized import parameterized
  import random
  from tests.base import ApiTestBase
  from tests.utils import decode_encoded_tree_stream, generate_image_set
  from aim.storage.treeutils import decode_tree
  from aim.storage.context import Context
  from aim.sdk.run import Run
label_desc: Use image node_id 1 for calling the TestRunInfoApi obj's underlying member method code with example usage: obj.setUpClass(cls) without return types