code: def test_insert(self):
      typos_trans.mode = "insert"
      special_sample = SASample({"x": "", "y": "negative"})
      self.assertEqual([], typos_trans.transform(special_sample))
      special_sample = SASample(
          {"x": "~!@#$%^7890\"'", "y": "negative"}
      )
      self.assertEqual(1, len(typos_trans.transform(special_sample)))
  
      x = typos_trans.transform(data_sample, n=3)
      self.assertTrue(3 == len(x))
  
      change = []
      for sample in x:
          self.assertTrue(
              sample.get_text("x") != data_sample.get_text("x")
          )
          self.assertTrue(
              editdistance.distance(
                  sample.get_text("x"), data_sample.get_text("x")
              )
              <= 2
          )
          change.append(sample.get_text("x"))
  
      self.assertTrue(len(set(change)) == 3)
  
file_path: textflint/test/generation/transformation/UT/test_typos.py
imports: import unittest
  import random
  import editdistance
  from textflint.input.component.sample import SASample
  from textflint.generation.transformation.UT.typos import Typos
label_desc: Use image node_id 3 for calling the TestTwitterType obj's underlying member method code with example usage: obj.test_insert() without return types