def test_fluent_function_kwarg():
    d = DataFrame()
    d1 = d.count(dude=22.0)
    assert d1.filter is None
    assert d1.child_expr is not None
    assert ast.dump(d1.child_expr) == \
        "Call(func=Attribute(value=ast_DataFrame(), attr='count', ctx=Load()), args=[], " \
        "keywords=[keyword(arg='dude', value=Num(n=22.0))])"
def test_fluent_function_pos_arg():
    d = DataFrame()
    d1 = d.count(22.0)
    assert d1.filter is None
    assert d1.child_expr is not None
    assert ast.dump(d1.child_expr) == \
        "Call(func=Attribute(value=ast_DataFrame(), attr='count', ctx=Load()), " \
        "args=[Num(n=22.0)], keywords=[])"
def test_render_func_with_df_arg():
    d = DataFrame()
    d1 = d.count(d)
    expr, _ = render(d1)
    assert isinstance(expr, ast.Call)
    assert len(expr.args) == 1
    arg1 = expr.args[0]  # type: ast.AST
    assert isinstance(arg1, ast_DataFrame)
    assert arg1.dataframe is d
def test_render_func_with_args():
    d = DataFrame()
    d1 = d.count(10)
    expr, _ = render(d1)
    assert isinstance(expr, ast.Call)
    assert len(expr.args) == 1
    arg1 = expr.args[0]
    assert isinstance(arg1, ast.Num)
    assert arg1.n == 10
def test_render_base_call():
    d = DataFrame()
    d1 = d.count()
    expr, _ = render(d1)
    assert isinstance(expr, ast.Call)
    assert len(expr.args) == 0
    e_func = expr.func
    assert isinstance(e_func, ast.Attribute)
    e_val = e_func.value  # type: ast.AST
    assert isinstance(e_val, ast_DataFrame)
    assert e_val.dataframe is d