code: def _generate_tests():
      x = te.var("x")
      dtypes = ["float32", "float16", "int32", "int8", "bool"]
      for dtype1 in dtypes:
          yield TestCase(
              tvm.tir.Cast(dtype1, x - x), tvm.tir.const(0, dtype1)
          )
          yield TestCase(
              tvm.tir.Cast(dtype1, x == x), tvm.tir.const(1, dtype1)
          )
          for dtype2 in dtypes:
              for i in [0, 1, 2, 3]:
                  if i <= 1 or (dtype1 != "bool" and dtype2 != "bool"):
                      yield TestCase(
                          tvm.tir.Cast(
                              dtype1, tvm.tir.const(i, dtype2)
                          ),
                          tvm.tir.const(i, dtype1),
                      )
  
imports: import inspect
  import pytest
  import tvm
  from tvm import te, tir
  from tvm.tir import truncdiv, truncmod, floordiv, floormod
label_desc: Use image node_id 1 for calling the TestCast obj's underlying member method code with example usage: obj._generate_tests() without return types