def testPrefix(self): t = fsymbol.T("boo") v = Var(Int, 1) t["x"] = v self.assertEqual(t["x"].cname, "boox") self.assertEqual(t.realName("@x"), "t__a_x") self.assertEqual(t.mangled_name("@x"), "t__a_x")
def main(outfile): with open(outfile, "w") as out: d = fsymbol.T() printer = SymbolPrinter(out) for k in list(d.default_dict.keys()): printer.add_symbol(d.demangle(k), d[k]) printer.output_all()
def testOrderOfParamsMerges(self): (t1, t2) = (fsymbol.T("a"), fsymbol.T("b")) t1["@a"] = Var(Int, 1) t1["d"] = Var(Int, 100) t2["d"] = Var(Int, 200) t2["@a"] = Var(Int, 3) t2["@b"] = Var(Float, 2) t1["@myfunc"] = fsymbol.OverloadList( [function.Func([Int], Int, "ident")]) t2["@myotherfunc"] = fsymbol.OverloadList( [function.Func([Int], Int, "ident")]) t1.merge(t2) op = t1.order_of_params() self.assertEqual(0, op["t__a_a"]) self.assertEqual(1, op["t__a_ba"]) self.assertEqual(2, op["t__a_bb"]) self.assertEqual(-1, t1["d"].param_slot) self.assertEqual(-1, t2["d"].param_slot)
def testParameterTypes(self): t = fsymbol.T("f") t["@a"] = Var(Int, 1) t["@b"] = Var(Bool, False) t["@c"] = Var(Float, 1.0) t["@d"] = Var(Complex, [10, 20]) t["@e"] = Var(Hyper, [1.0, 1.0, 1.0, 1.0]) t["@f"] = Var(Gradient, None) t["@g"] = Var(Color, [0.0, 1.0, 2.0, 3.0]) t["@h"] = Var(Image, None) self.assertEqual([ Int, Bool, Float, Float, Float, Float, Float, Float, Float, Gradient, Float, Float, Float, Float, Image ], t.type_of_params())
def main(outfile): with open(outfile, "w") as out: # insert front matter print('''--- title: "Standard Library Reference" draft: false --- ''', file=out) d = fsymbol.T() printer = SymbolPrinter(out) for k in list(d.default_dict.keys()): printer.add_symbol(d.demangle(k), d[k]) printer.output_all()
def testOrderOfParams(self): "Are parameters returned in the right order?" t = fsymbol.T("f") t["@a"] = Var(Int, 1) op = t.order_of_params() self.assertEqual(0, op["t__a_a"]) # add another param t["@y"] = Var(Int, 1) op = t.order_of_params() self.assertEqual(1, op["t__a_y"]) # and another earlier in the alphabet. This should # still end up later, unlikely when order_of_params # sorted by keys t["@p"] = Var(Int, 1) op = t.order_of_params() self.assertEqual(2, op["t__a_p"]) self.assertEqual(3, op["__SIZE__"])
def testParamSlots(self): t = fsymbol.T("boo") v = Var(Int, 1) self.assertEqual(-1, v.param_slot) t["x"] = v self.assertEqual(-1, v.param_slot) v2 = Var(Complex, [1.0, 2.0]) self.assertEqual(-1, v2.param_slot) t["@p"] = v2 self.assertEqual(0, v2.param_slot) self.assertEqual(2, t.nextParamSlot) v3 = Var(Hyper, [1.0, 2.0, 3.0, 4.0]) self.assertEqual(-1, v3.param_slot) t["@pc"] = v3 self.assertEqual(2, v3.param_slot) self.assertEqual(6, t.nextParamSlot) v4 = Var(Int, 77) self.assertEqual(-1, v4.param_slot) t["@pi"] = v4 self.assertEqual(6, v4.param_slot) self.assertEqual(7, t.nextParamSlot) # functions shouldn't affect this f = fsymbol.OverloadList([function.Func([Int], Int, "ident")]) t["@myfunc"] = f self.assertNotEqual(True, hasattr(f, "param_slot")) self.assertEqual(7, t.nextParamSlot) v5 = Var(Image, None) self.assertEqual(-1, v5.param_slot) t["@image"] = v5 self.assertEqual(7, v5.param_slot) self.assertEqual(8, t.nextParamSlot)
def testGetDefaultParamSetsSlot(self): t = fsymbol.T("f") x = t["@p1"] self.assertEqual(0, x.param_slot)
def testZ(self): t1 = fsymbol.T("a") x = t1["z"] self.assertEqual(-1, x.param_slot)
def setUp(self): self.t = fsymbol.T()
def setUp(self): self.fakeNode = absyn.Empty(0) self.canon = canon.T(fsymbol.T())