def test_is_basetype(self): true = self.assertTrue true( int_t.is_base() ) true( float_t.is_base() ) true( str_t.is_base() ) true( unicode_t.is_base() ) true( bool_t.is_base() ) true( unit_t.is_base() ) equal = self.assertEqual equal( PType.int(), int_t ) equal( PType.float(), float_t ) equal( PType.string(), str_t ) equal( PType.unicode(), unicode_t ) equal( PType.bool(), bool_t ) equal( PType.unit(), unit_t ) all(equal(PType.from_str(k), v) for (k,v) in base_ts.iteritems())
import sys import unittest from lepl import sexpr_to_tree # Include src in the Python search path sys.path.insert(0, '../src') from ptype import (PType, TypeSpecParser, better_sexpr_to_tree, Lst, Stt, Tup, Mpp, Arr) int_t = PType.int() float_t = PType.float() str_t = PType.string() unicode_t = PType.unicode() bool_t = PType.bool() unit_t = PType.unit() base_ts = {"int": int_t, "float": float_t, "str": str_t, "unicode": unicode_t, "bool": bool_t, "unit": unit_t} class PTypeTests(unittest.TestCase): def test_is_basetype(self): true = self.assertTrue true( int_t.is_base() ) true( float_t.is_base() ) true( str_t.is_base() ) true( unicode_t.is_base() ) true( bool_t.is_base() ) true( unit_t.is_base() )
from settings import DEBUG_TYPECHECK from logger import Logger from ast_extensions import TypeDec from infer import infer_expr, env_get log = None def t_debug(s, cond=True): log.debug(s, DEBUG_TYPECHECK and cond) def call_function(fun_name, *args, **kwargs): return globals()[fun_name](*args, **kwargs) int_t = PType.int() float_t = PType.float() bool_t = PType.bool() str_t = PType.string() unicode_t = PType.unicode() unit_t = PType.unit() bool_ops = set([ast.And, ast.Or]) arith_ops = set([ast.Add, ast.Sub, ast.Mult, ast.Div, ast.FloorDiv, ast.Mod, ast.Pow]) bit_ops = set([ast.LShift, ast.RShift, ast.BitOr, ast.BitAnd, ast.BitXor]) bin_ops = arith_ops | bit_ops unary_ops = set([ast.Invert, ast.Not, ast.UAdd, ast.USub]) comp_eq_ops = set([ast.Eq, ast.NotEq, ast.Is, ast.IsNot]) comp_num_ops = set([ast.Lt, ast.LtE, ast.Gt, ast.GtE]) comp_ops = comp_num_ops | comp_eq_ops