code: def test_free_variables():
      x = tvm.tir.Var("x", "int32")
      y = tvm.tir.Var("y", "int32")
      z = tvm.tir.Var("z", "int32")
  
      # illegal iter if z is within dom
      assert_iter_sum_failure(
          [z * 19 + y * 3 + x], var_dom([(x, 3), (y, 3), (z, 3)])
      )
  
      # iter is valid if z is free, even there are linear forms of z
      assert_iter_sum_pattern(
          {z * 19 + y * 3 + x: (9, z * 19)},
          var_dom(
              [
                  (x, 3),
                  (y, 3),
              ]
          ),
      )
      assert_iter_sum_pattern(
          {z * z + y * 3 + x: (9, z * z)},
          var_dom(
              [
                  (x, 3),
                  (y, 3),
              ]
          ),
      )
  
imports: import tvm
  import tvm.testing
  from tvm.tir import floordiv, floormod
label_desc: Use image node_id 22 for calling a global function with example usage: test_free_variables() without return types