code: def test_matches_op_with_updates(self):
      predictions = tf.constant(
          [0.2, 0.4, 0.5, 0.6, 0.8], dtype=tf.float32
      )
      labels = tf.constant(
          [False, True, True, False, True], dtype=tf.bool
      )
      pr_curve, update_op = summary.streaming_op(
          name="pr_curve",
          predictions=predictions,
          labels=labels,
          num_thresholds=10,
      )
  
      complete_predictions = tf.tile(predictions, [3])
      complete_labels = tf.tile(labels, [3])
      expected_pr_curve = summary.op(
          name="pr_curve",
          predictions=complete_predictions,
          labels=complete_labels,
          num_thresholds=10,
      )
      with self.test_session() as sess:
          sess.run(tf.compat.v1.local_variables_initializer())
          sess.run([update_op])
          sess.run([update_op])
          sess.run([update_op])
  
          proto = self.pb_via_op(pr_curve)
          expected_proto = self.pb_via_op(expected_pr_curve)
  
          # Need to detect and fix the automatic _1 appended to second namespace.
          self.assertEqual(proto.value[0].tag, "pr_curve/pr_curves")
          self.assertEqual(
              expected_proto.value[0].tag, "pr_curve_1/pr_curves"
          )
          expected_proto.value[0].tag = "pr_curve/pr_curves"
  
          self.assertProtoEquals(expected_proto, proto)
  
imports: import numpy
  import tensorflow
  from tensorboard.compat.proto import summary_pb2
  from tensorboard.plugins.pr_curve import metadata
  from tensorboard.plugins.pr_curve import summary
  from tensorboard.util import tensor_util
  from tensorboard.util import test_util
label_desc: Use image node_id 5 for calling the StreamingOpTest obj's underlying member method code with example usage: obj.test_matches_op_with_updates() without return types