code: def test_insert_after_index(self):
      # TODO meger with others
      self.assertRaises(TypeError, insert_after_index, None, 1, [0])
      self.assertRaises(
          TypeError, insert_after_index, [1], TestClass, [0]
      )
      self.assertRaises(TypeError, insert_after_index, [1], [0], [1, 2])
      self.assertRaises(
          TypeError, insert_after_index, [1], (1, 2), [1, 2]
      )
      self.assertRaises(IndexError, insert_after_index, [1], 1, [1])
      self.assertRaises(
          TypeError, insert_after_index, [1, 2, 3], [1, 2], [1]
      )
      self.assertRaises(
          TypeError, insert_after_index, [1, 2, 3], [], [1]
      )
      self.assertRaises(
          TypeError, insert_after_index, [1, 2, 3], [1, []], [1]
      )
      self.assertRaises(
          TypeError, insert_after_index, [1, 2, 3], "123", [1]
      )
      self.assertRaises(
          ValueError, insert_after_index, [1, 2, 3], -1, [1]
      )
  
imports: import unittest
  from textflint.common.utils.list_op import *
label_desc: Use image node_id 9 for calling the TestListOpError obj's underlying member method code with example usage: obj.test_insert_after_index() without return types