def test_block_with_single_variable_and_no_expressions(self): self.check_gen(ccode.Block(variables=[ccode.Variable(ct_int("a"))]), ( "{\n" "\tint a;\n" "\n" "}\n" ))
def test_add_var(self): block = ccode.Block() block.add_var(ccode.Variable(ct_int("a"))) self.check_gen(block, ( "{\n" "\tint a;\n" "\n" "}\n" ))
def test_block_with_single_variable_and_single_expression(self): self.check_gen(ccode.Block( variables=[ccode.Variable(ct_int("a"))], code=[dummy], ), ( "{\n" "\tint a;\n" "\n" "\tdummy;\n" "}\n" ))
def test_global_to_variable(self): self.check_gen(ccode.Global(ct_int("a")).to_variable(), "a")
def test_global(self): self.check_gen(ccode.Global(ct_int("a")), "int a;\n")
def test_to_args(self): decls = [ct_int("a"), ct_int("b")] variables = [ccode.Variable(decl) for decl in decls] self.assertEqual(ccode.Variable.to_args(variables), decls)
def test_variable_definition_with_initial(self): var = ccode.Variable(ct_int("a"), dummy) self.check_gen(var, "int a = dummy", action="_var_act")
def test_variable_definition(self): self.check_gen(ccode.Variable(ct_int("a")), "int a", action="_var_act")
def test_variable_name_with_initial(self): self.check_gen(ccode.Variable(ct_int("a"), dummy), "a")
def test_variable_name(self): self.check_gen(ccode.Variable(ct_int("a")), "a")
def test_func_with_multiple_args(self): decl = cdecl.Func(ct_int, [ct_int("b"), ct_int("c")])("a") self.assertEqual(str(decl), "int a(int b, int c)")
def test_func_with_single_arg(self): decl = cdecl.Func(ct_int, [ct_int("b")])("a") self.assertEqual(str(decl), "int a(int b)")
def test_struct_multiple_fields(self): decl = cdecl.Struct("a", [ct_int("a"), ct_int("b")])("a") self.assertEqual(str(decl), "struct a {\n\tint a;\n\tint b;\n} a")
def test_struct_one_field(self): decl = cdecl.Struct("a", [ct_int("a")])("a") self.assertEqual(str(decl), "struct a {\n\tint a;\n} a")