code: def test_simplify(self, test_case):
      analyzer = tvm.arith.Analyzer()
  
      if inspect.isclass(test_case.expected) and issubclass(
          test_case.expected, Exception
      ):
          with pytest.raises(test_case.expected):
              with analyzer.constraint_scope(test_case.constraint):
                  analyzer.rewrite_simplify(test_case.before)
      else:
          with analyzer.constraint_scope(test_case.constraint):
              after = analyzer.rewrite_simplify(test_case.before)
  
          assert tvm.ir.structural_equal(after, test_case.expected), (
              f"Rewrite didn't match expected.\n"
              f"Before   = {test_case.before}\n"
              f"After    = {after}\n"
              f"Expected = {test_case.expected}"
          )
  
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 BaseCompare obj's underlying member method code with example usage: obj.test_simplify(test_case) without return types