code: def test_replace_at_scope(self):
      self.assertRaises(
          AssertionError, replace_at_scope, None, [1], [1]
      )
      self.assertRaises(
          TypeError, replace_at_scope, [1], TestClass, [1]
      )
      self.assertRaises(IndexError, replace_at_scope, [1], [1], None)
      self.assertRaises(IndexError, replace_at_scope, [1], [0], [1, 2])
      self.assertRaises(
          TypeError,
          replace_at_scope,
          [1],
          [(1, 2), [3, 4]],
          [[1, 2], [4, 5]],
      )
      self.assertRaises(IndexError, replace_at_scope, [1], [1], [1])
      self.assertRaises(
          IndexError, replace_at_scope, [1, 2, 3], [1], []
      )
      self.assertRaises(
          IndexError, replace_at_scope, [1, 2, 3], [], [1]
      )
      self.assertRaises(
          TypeError, replace_at_scope, [1, 2, 3], [[2, 1]], [1]
      )
      self.assertRaises(
          TypeError, replace_at_scope, [1, 2, 3], [[1, 2], []], [1, []]
      )
      self.assertRaises(
          TypeError, replace_at_scopes, [1, 2, 3], [["123"]], [1]
      )
      self.assertRaises(
          ValueError, replace_at_scopes, [1, 2, 3], [-1], [1]
      )
      self.assertRaises(
          TypeError, replace_at_scopes, [1, 2, 3], [9.3], [1]
      )
  
imports: import unittest
  from textflint.common.utils.list_op import *
label_desc: Use image node_id 3 for calling the TestListOpError obj's underlying member method code with example usage: obj.test_replace_at_scope() without return types