code: def testInfoWithValidCheckpointAndEventsData(self):
      self._GenerateProjectorTestData()
      self._GenerateEventsData()
      self._SetupWSGIApp()
  
      run_json = self._GetJson("/data/plugin/projector/runs")
      self.assertTrue(run_json)
      run = run_json[0]
      info_json = self._GetJson(
          "/data/plugin/projector/info?run=%s" % run
      )
      self.assertCountEqual(
          info_json["embeddings"],
          [
              {
                  "tensorShape": [1, 2],
                  "tensorName": "var1",
                  "bookmarksPath": "bookmarks.json",
              },
              {"tensorShape": [10, 10], "tensorName": "var2"},
              {"tensorShape": [100, 100], "tensorName": "var3"},
          ],
      )
  
imports: import gzip
  import io
  import json
  import os
  import numpy
  import tensorflow
  import unittest
  from werkzeug import test
  from werkzeug import wrappers
  from google.protobuf import text_format
  from tensorboard.backend import application
  from tensorboard.backend.event_processing import data_provider
  from tensorboard.backend.event_processing import plugin_event_multiplexer
  from tensorboard.compat.proto import event_pb2
  from tensorboard.compat.proto import summary_pb2
  from tensorboard.compat import tf
  from tensorboard.plugins import base_plugin
  from tensorboard.plugins.projector import projector_config_pb2
  from tensorboard.plugins.projector import projector_plugin
  from tensorboard.util import test_util
label_desc: Use image node_id 8 for calling the ProjectorAppTest obj's underlying member method code with example usage: obj.testInfoWithValidCheckpointAndEventsData() without return types