예제 #1
0
	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])
예제 #3
0
	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)
예제 #4
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
예제 #5
0
	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)
예제 #6
0
	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)
예제 #7
0
파일: utils.py 프로젝트: panyam/epl
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
예제 #8
0
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
예제 #9
0
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
예제 #10
0
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