code: def test_scalar_summary_with_family(self, scope):
      scoped_summary = _TPUScopedSummary(
          self.test_subdirectory, scope=scope
      )
      i = tf.constant(7)
      with tf.name_scope("outer"):
          scoped_summary.scalar("inner", i, family="family")
          scoped_summary.scalar("inner", i, family="family")
      self.write_summaries(scoped_summary)
      events = self.read_single_event_from_eventfile(scoped_summary)
      self.assertLen(events[0].summary.value, 1)
      self.assertLen(events[1].summary.value, 1)
  
      self.assertEqual(
          {
              "family/outer/family/inner": 7.0,
              "family/outer/family/inner_1": 7.0,
          },
          {
              event.summary.value[0]
              .tag: event.summary.value[0]
              .simple_value
              for event in events
          },
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import functools
  import os
  from absl.testing import parameterized
  from adanet import tf_compat
  from adanet.core import testing_utils
  from adanet.core.summary import _ScopedSummary
  from adanet.core.summary import _TPUScopedSummary
  from adanet.core.summary import monkey_patched_summaries
  from six.moves import range
  import tensorflow.compat.v1
  from tensorflow.python.ops import summary_ops_v2
label_desc: Use image node_id 5 for calling the TPUScopedSummaryTest obj's underlying member method code with example usage: obj.test_scalar_summary_with_family(scope) without return types