code: def test_iob1_tags_to_spans_extracts_correct_spans_without_labels(
      self,
  ):
      tag_sequence = ["I", "B", "I", "O", "B", "I", "B", "B"]
      spans = span_utils.iob1_tags_to_spans(tag_sequence)
      assert set(spans) == set(
          [
              ("", (0, 0)),
              ("", (1, 2)),
              ("", (4, 5)),
              ("", (6, 6)),
              ("", (7, 7)),
          ]
      )
  
      # Check that it raises when we use U- tags for single tokens.
      tag_sequence = ["O", "B", "I", "O", "B", "I", "U", "U"]
      with self.assertRaises(span_utils.InvalidTagSequence):
          spans = span_utils.iob1_tags_to_spans(tag_sequence)
  
      # Check that invalid IOB1 sequences are also handled as spans.
      tag_sequence = ["O", "B", "I", "O", "I", "B", "I", "B", "I", "I"]
      spans = span_utils.iob1_tags_to_spans(tag_sequence)
      assert set(spans) == set(
          [("", (1, 2)), ("", (4, 4)), ("", (5, 6)), ("", (7, 9))]
      )
  
file_path: magnitude/pymagnitude/third_party/allennlp/tests/data/dataset_readers/dataset_utils/span_utils_test.py
imports: from __future__ import with_statement
  from __future__ import absolute_import
  from allennlp.common.testing import AllenNlpTestCase
  from allennlp.data.dataset_readers.dataset_utils import span_utils
  from allennlp.data.tokenizers.word_tokenizer import SpacyWordSplitter
  from allennlp.data.tokenizers.token import Token
label_desc: Use image node_id 4 for calling the SpanUtilsTest obj's underlying member method code with example usage: obj.test_iob1_tags_to_spans_extracts_correct_spans_without_labels() without return types