def test_factorial(self): src = get_src("factorial") c = parse(src) vm = exe(c) self.assertEqual(extract(vm), 479001600) src = get_src("factorial_short") c = parse(src) vm = exe(c) self.assertEqual(extract(vm), 479001600)
def test_basic(self): src = inline_src("<< 1 2 3; PEEKN << 0 3") c = parse(src) vm = exe(c) self.assertEqual(vm.data, [1, 2, 3, 1, 2, 3]) src = inline_src("<< 1 2 3; PEEKN << 0 3; POKEN << 1 3") c = parse(src) vm = exe(c) self.assertEqual(vm.data, [1, 1, 2, 3])
def test_blanks(self): src = get_src("blank") c = parse(src) vm = exe(c) self.assertEqual(len(vm.data), 0) self.assertEqual(len(vm.exe), 0) self.assertEqual(len(vm.reg), 0) src = get_src("win") c = parse(src) vm = exe(c) self.assertEqual(len(vm.data), 0) self.assertEqual(len(vm.exe), 0) self.assertEqual(len(vm.reg), 0)
def test_parse_data(): data = get_part_data() for region in data: part_data = data[region] results = parse(part_data, multithreading=False) for result in results: assert result is not None
def test_basic(self): src = get_src("dupn") c = parse(src) vm = exe(c) self.assertEqual(len(vm.data), 100) with self.assertRaises(GridLangExecutionException): vm = exe_w_limits(c)
def test_basic(self): src = get_src("blank") parse(src) src = get_src("win") parse(src) src = get_src("factorial") parse(src) src = get_src("factorial_short") parse(src)
def runtest(input, exp, starting_env=None, **extra_env): Expr = settings.get("Expr") Type = settings.get("Type") TypeOf = settings.get("TypeOf") expr, tree = parse(input, Expr, Type) if settings.get("print_tree", no_throw=True): bp.eprint(expr) env = prepareenv(starting_env, **extra_env) try: foundtype = TypeOf()(expr, env) stringifier = typed.Stringifier() if settings.get("print_type", no_throw=True): print("Found Type: ", stringifier(foundtype)) if type(exp) is not bool and foundtype != exp: assert False, "Type Found: %s, Expected: %s" % ( stringifier(foundtype), stringifier(exp)) except taggedunion.InvalidVariantError as ive: assert exp == False except typed.TypeError as te: assert exp == False
def parse_state(data: str) -> State: parser_state, source = parse(data, lang.GrammarRule.state_rule) assert isinstance(parser_state, lang.State) state = create_state(parser_state, ID("Package"), source) assert isinstance(state, State) return state
def parse_formal_declaration(data: str) -> decl.Declaration: parser_declaration, filename = parse(data, lang.GrammarRule.session_parameter_rule) assert isinstance(parser_declaration, lang.FormalDecl) declaration = create_formal_declaration(parser_declaration, ID("Package"), filename) assert isinstance(declaration, decl.Declaration) return declaration
def parse_statement(data: str) -> stmt.Statement: parser_statement, filename = parse(data, lang.GrammarRule.action_rule) assert isinstance(parser_statement, lang.Statement) statement = create_statement(parser_statement, filename) assert isinstance(statement, stmt.Statement) return statement