()
| 64 | |
| 65 | |
| 66 | def test_dataflow_var(): |
| 67 | # Error: DataflowVar lv0 is not defined |
| 68 | lv0 = rx.DataflowVar("lv0", R.Tensor([m, n], "float32")) |
| 69 | gv0 = rx.Var("gv0", R.Tensor([m, n], "float32")) |
| 70 | call_node = rx.op.add(x, lv0) |
| 71 | bindings = [rx.VarBinding(gv0, call_node)] |
| 72 | blocks = [rx.DataflowBlock(bindings)] |
| 73 | func = build_function(blocks) |
| 74 | mod = tvm.IRModule({rx.GlobalVar("foo"): func}) |
| 75 | assert not rx.analysis.check_well_formed(mod, check_struct_info=False) |
| 76 | |
| 77 | # Error: DataflowVar gv0 is defined more than once |
| 78 | lv0 = rx.DataflowVar("lv0", R.Tensor([m, n], "float32")) |
| 79 | call_node = rx.op.add(x, x) |
| 80 | call_node2 = rx.op.multiply(x, x) |
| 81 | bindings = [rx.VarBinding(lv0, call_node), rx.VarBinding(lv0, call_node2)] |
| 82 | blocks = [rx.DataflowBlock(bindings)] |
| 83 | func = build_function(blocks) |
| 84 | mod = tvm.IRModule({rx.GlobalVar("foo"): func}) |
| 85 | assert not rx.analysis.check_well_formed(mod, check_struct_info=False) |
| 86 | |
| 87 | # Error: DataflowVar lv0 is defined outside DataflowBlock |
| 88 | lv0 = rx.DataflowVar("lv0", R.Tensor([m, n], "float32")) |
| 89 | call_node = rx.op.add(x, x) |
| 90 | bindings = [rx.VarBinding(lv0, call_node)] |
| 91 | blocks = [rx.BindingBlock(bindings)] |
| 92 | func = build_function(blocks) |
| 93 | mod = tvm.IRModule({rx.GlobalVar("foo"): func}) |
| 94 | assert not rx.analysis.check_well_formed(mod, check_struct_info=False) |
| 95 | |
| 96 | # Error: DataflowVar lv0 is used outside DataflowBlock |
| 97 | lv0 = rx.DataflowVar("lv0", R.Tensor([m, n], "float32")) |
| 98 | gv0 = rx.Var("gv0", R.Tensor([m, n], "float32")) |
| 99 | call_node = rx.op.add(lv0, x) |
| 100 | bindings = [rx.VarBinding(lv0, call_node)] |
| 101 | blocks = [rx.BindingBlock(bindings)] |
| 102 | func = build_function(blocks) |
| 103 | mod = tvm.IRModule({rx.GlobalVar("foo"): func}) |
| 104 | assert not rx.analysis.check_well_formed(mod, check_struct_info=False) |
| 105 | |
| 106 | |
| 107 | def test_param_var(): |
nothing calls this directly
no test coverage detected
searching dependent graphs…