code: def test_meta_schedule_post_order_apply_multiple():
      mod = Matmul
      context = TuneContext(
          mod=mod,
          target=Target("llvm"),
          task_name="Double Rules Task",
          space_generator=PostOrderApply(
              sch_rules=[DoubleScheduleRule(), ReorderScheduleRule()],
              postprocs=[],
              mutator_probs={},
          ),
      )
      post_order_apply = context.space_generator
      schs = post_order_apply.generate_design_space(mod)
      assert len(schs) == 4
      for sch in schs:
          assert not tvm.ir.structural_equal(sch.mod, mod)
          _check_correct(sch)
  
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 6 for calling a global function with example usage: test_meta_schedule_post_order_apply_multiple() without return types