code: def test_meta_schedule_derived_object():
      @derived_object
      class RemoveBlock(PyScheduleRule):
          @classmethod
          def class_construct(cls):
              return cls()
  
          @staticmethod
          def static_construct():
              return RemoveBlock()
  
      inst_by_init = RemoveBlock()
      assert isinstance(inst_by_init, RemoveBlock)
  
      inst_by_classmethod = RemoveBlock.class_construct()
      assert isinstance(inst_by_classmethod, RemoveBlock)
  
      inst_by_staticmethod = RemoveBlock.static_construct()
      assert isinstance(inst_by_staticmethod, RemoveBlock)
  
imports: import math
  import sys
  from typing import List
  import pytest
  import tvm
  import tvm.testing
  from tvm import te
  from tvm.ir.module import IRModule
  from tvm._ffi import register_func
  from tvm.error import TVMError
  from tvm.meta_schedule import TuneContext
  from tvm.meta_schedule.schedule_rule import PyScheduleRule
  from tvm.meta_schedule.space_generator import PostOrderApply
  from tvm.meta_schedule.utils import derived_object
  from tvm.script import tir
  from tvm.target import Target
  from tvm.tir.schedule import BlockRV, Schedule
label_desc: Use image node_id 11 for calling a global function with example usage: test_meta_schedule_derived_object() and returns: cls, RemoveBlock