code: def test_replace_at_scope(self):
      self.assertEqual(
          [1, 2, 3, 4], replace_at_scope([2, 2, 3, 4], [0, 1], [1])
      )
      self.assertEqual(
          [1, 2, 3, 4], replace_at_scope([1, 2, 3, 5], [3, 4], [4])
      )
      self.assertEqual(
          [1, 2, 3, 4],
          replace_at_scope([4, 2, 3, 1], [0, 4], [1, 2, 3, 4]),
      )
  
      for i in range(50):
          a = random.randint(1, 500)
          b = random.randint(501, 999)
          test_list = list(range(1000))
          change = test_list[a:b]
          random.shuffle(change)
          test_list = test_list[:a] + change + test_list[b:]
          self.assertEqual(
              list(range(1000)),
              replace_at_scope(test_list, [a, b], list(range(a, b))),
          )
  
imports: import unittest
  from textflint.common.utils.list_op import *
label_desc: Use image node_id 3 for calling the TestListOp obj's underlying member method code with example usage: obj.test_replace_at_scope() without return types