code: def test_end_of_bilou_slot(self):
      # Given
      tags = [
          OUTSIDE,
          LAST_PREFIX,
          UNIT_PREFIX,
          BEGINNING_PREFIX,
          UNIT_PREFIX,
          INSIDE_PREFIX,
          LAST_PREFIX,
          LAST_PREFIX,
          UNIT_PREFIX,
          UNIT_PREFIX,
          LAST_PREFIX,
          OUTSIDE,
          INSIDE_PREFIX,
          BEGINNING_PREFIX,
          OUTSIDE,
          BEGINNING_PREFIX,
          INSIDE_PREFIX,
          INSIDE_PREFIX,
          LAST_PREFIX,
      ]
  
      # When
      ends_of_bilou = [
          end_of_bilou_slot(tags, i) for i in range(len(tags))
      ]
  
      # Then
      expected_ends = [
          False,
          True,
          True,
          True,
          True,
          False,
          True,
          True,
          True,
          True,
          True,
          False,
          True,
          True,
          False,
          False,
          False,
          False,
          True,
      ]
  
      self.assertListEqual(ends_of_bilou, expected_ends)
  
imports: from __future__ import unicode_literals
  from builtins import range
  from mock import patch
  from snips_nlu.constants import LANGUAGE_EN
  from snips_nlu.preprocessing import Token, tokenize
  from snips_nlu.result import unresolved_slot
  from snips_nlu.slot_filler.crf_utils import BEGINNING_PREFIX, INSIDE_PREFIX, LAST_PREFIX, OUTSIDE, TaggingScheme, UNIT_PREFIX, end_of_bilou_slot, end_of_bio_slot, negative_tagging, positive_tagging, start_of_bilou_slot, start_of_bio_slot, tags_to_slots, utterance_to_sample
  from snips_nlu.tests.utils import SnipsTest
label_desc: Use image node_id 15 for calling the TestCRFUtils obj's underlying member method code with example usage: obj.test_end_of_bilou_slot() without return types