def test_builtin_functions_exist_in_default_env(self): e = env() assert Symbol('drop') in e assert Symbol('dropna') in e assert Symbol('read_file') in e assert Symbol('export_csv') in e
def test_attr_call_on_var(self, dataframe): e = env() e[Symbol('df')] = dataframe assert run('df.columns').equals(dataframe.columns)
def test_pipeline_execute_multiple_stmts(self, dataframe): e = env() e[Symbol('df')] = dataframe assert run('pipeline(df): {drop(.name) drop(.floats)}', env=e).equals( drop(dataframe, [Col('name'), Col('floats')]))
def test_pipeline_execute_stmts(self, dataframe): e = env() e[Symbol('df')] = dataframe assert run('pipeline(df): {drop(.name)}', env=e).equals( drop(dataframe, Col('name')))
def test_assing_variable_using_expr(self): e = env() run('x = 1 + 2 + 3', e) assert e[Symbol('x')] == 6
def test_assign_variable_add_to_env(self): e = env() run('x = 1', e) assert e[Symbol('x')] == 1
def test_env_can_be_create(self): assert env() is not None assert isinstance(env(), dict)
def test_basic_operators_exists_in_default_env(self): assert env() == global_env assert set(env({Symbol('x'): 3})).issuperset(global_env)
def test_vars_can_only_be_symbols(self): with pytest.raises(TypeError): env({'x': 1})
def test_vars_can_be_initialized(self): x = Symbol('x') assert env({x: 3})[x] == 3