def test_replace_defs(self): string=''' MACHINE Test VARIABLES z, b, x INVARIANT x:NAT & z:NAT & b:BOOL INITIALISATION x:=2 ; Assign(x+1, z) ; Assign(TRUE, b) DEFINITIONS Assign(Expr, VarName) == VarName := Expr; END''' string_to_file(string, file_name) ast_string = file_to_AST_str(file_name) root = str_ast_to_python_ast(ast_string) env = Environment() init = root.children[3] assert isinstance(init, AInitialisationMachineClause) subst = init.children[0] assert isinstance(subst.children[1], ADefinitionSubstitution) assert isinstance(subst.children[2], ADefinitionSubstitution) dh = DefinitionHandler(env, str_ast_to_python_ast) dh._save_definitions(root.children[4]) def_free_ast = dh._replace_definitions(root) assert isinstance(subst.children[1], AAssignSubstitution) assert isinstance(subst.children[2], AAssignSubstitution)