code: def test_span_infilling(self):
      bart_noise = BARTNoising(
          vocab=[self.FAKE_VOCAB],
          mask_tok=self.MASK_TOK,
          mask_ratio=0.5,
          mask_length="span-poisson",
          poisson_lambda=3.0,
          is_joiner=True,
          replace_length=1,
          # insert_ratio=0.5,
          # random_ratio=0.3,
          # Defalt: full_stop_token=[".", "?", "!"]
      )
      self.assertIsNotNone(bart_noise.mask_span_distribution)
      tokens = ["H￭", "ell￭", "o", "world", ".", "An￭", "other", "!"]
      # start token of word are identified using subword marker
      token_starts = [True, False, False, True, True, True, False, True]
      self.assertEqual(bart_noise._is_word_start(tokens), token_starts)
      bart_noise.apply(copy.copy(tokens))
  
imports: import unittest
  import copy
  import yaml
  import math
  from argparse import Namespace
  from onmt.transforms import get_transforms_cls, get_specials, make_transforms, TransformPipe
  from onmt.transforms.bart import BARTNoising
label_desc: Use image node_id 7 for calling the TestBARTNoising obj's underlying member method code with example usage: obj.test_span_infilling() without return types