code: def test_experiment_with_session_tags_bool_types(self):
      self.session_1_start_info_ = """
              hparams:[
                {key: 'use_batch_norm' value: {bool_value: true}}
              ]
          """
      self.session_2_start_info_ = """
              hparams:[
                {key: 'use_batch_norm' value: {bool_value: true}}
              ]
          """
      self.session_3_start_info_ = """
              hparams:[
              ]
          """
      expected_exp = """
              hparam_infos: {
                name: 'use_batch_norm'
                type: DATA_TYPE_BOOL
                domain_discrete: {
                  values: [{bool_value: true}]
                }
                differs: false
              }
              metric_infos: {
                name: {group: '', tag: 'accuracy'}
              }
              metric_infos: {
                name: {group: '', tag: 'loss'}
              }
              metric_infos: {
                name: {group: 'eval', tag: 'loss'}
              }
              metric_infos: {
                name: {group: 'train', tag: 'loss'}
              }
          """
      actual_exp = self._experiment_from_metadata()
      _canonicalize_experiment(actual_exp)
      self.assertProtoEquals(expected_exp, actual_exp)
  
imports: import operator
  from unittest import mock
  import tensorflow
  from google.protobuf import text_format
  from tensorboard import context
  from tensorboard.data import provider
  from tensorboard.plugins import base_plugin
  from tensorboard.plugins.hparams import api_pb2
  from tensorboard.plugins.hparams import backend_context
  from tensorboard.plugins.hparams import metadata
  from tensorboard.plugins.hparams import plugin_data_pb2
label_desc: Use image node_id 11 for calling the BackendContextTest obj's underlying member method code with example usage: obj.test_experiment_with_session_tags_bool_types() without return types