コード例 #1
0
ファイル: test_dt_expr.py プロジェクト: Radu080/datatable
def test_dt_invert_invalid(src):
    dt0 = dt.Frame(src)
    for engine in ["llvm", "eager"]:
        if engine == "llvm" and not has_llvm():
            continue
        with pytest.raises(TypeError) as e:
            dt0(select=~f[0], engine=engine)
        assert str(e.value) == ("Operator `~` cannot be applied to a `%s` "
                                "column" % dt0.stypes[0].name)
コード例 #2
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_filter_on_view3():
    df0 = dt.Frame({"A": range(20)})
    df1 = df0[::5, :]
    df2 = df1(f.A <= 10, engine="eager")
    df2.internal.check()
    assert df2.topython() == [[0, 5, 10]]
    if has_llvm():
        df3 = df1(f.A <= 10, engine="llvm")
        df3.internal.check()
        assert df3.topython() == [[0, 5, 10]]
コード例 #3
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_unary_minus(df1):
    dt1 = df1(-f.A < -3, engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[4, 5, 6, 7, 9], [4, 0, 2, None, 9]]
    if has_llvm():
        dt2 = df1(-f.A < -3, engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #4
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_compare_to_scalar_lt(df1):
    dt1 = df1(f.A < 3, engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[0, 1, 2], [3, 2, 1]]
    if has_llvm():
        dt2 = df1(f.A < 3, engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #5
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_compare_to_scalar_eq(df1):
    dt1 = df1(f.A == None, engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[None, None], [None, 8]]
    if has_llvm():
        dt2 = df1(f.A == None, engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #6
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_less_than_or_equal(df1):
    dt1 = df1(f.A <= f.B, engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[0, 1, 3, 4, None, 9], [3, 2, 3, 4, None, 9]]
    if has_llvm():
        dt2 = df1(f.A <= f.B, engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #7
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_compare_to_scalar_gt(df1):
    dt1 = df1(f.A > 3, engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[4, 5, 6, 7, 9], [4, 0, 2, None, 9]]
    if has_llvm():
        dt2 = df1(f.A > 3, engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #8
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_greater_than(df1):
    dt1 = df1(f.A > f.B, engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[2, 5, 6], [1, 0, 2]]
    if has_llvm():
        dt2 = df1(f.A > f.B, engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #9
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_less_than(df1):
    dt1 = df1(f.A < f.B, engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[0, 1], [3, 2]]
    if has_llvm():
        dt2 = df1(f.A < f.B, engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #10
0
ファイル: test_dt_expr.py プロジェクト: Radu080/datatable
def test_dt_invert(src):
    dt0 = dt.Frame(src)
    df2 = dt0(select=~f[0], engine="eager")
    df2.internal.check()
    assert df2.stypes == dt0.stypes
    assert df2.to_list() == [[inv(x) for x in src]]
    if has_llvm():
        df1 = dt0(select=~f[0], engine="llvm")
        df1.internal.check()
        assert df1.stypes == dt0.stypes
        assert df1.to_list() == [[inv(x) for x in src]]
コード例 #11
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_isna(df1):
    from datatable import isna
    dt1 = df1(isna(f.A), engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[None, None], [None, 8]]
    if has_llvm():
        dt2 = df1(isna(f.A), engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #12
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_greater_than_or_equal(df1):
    dt1 = df1(f.A >= f.B, engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[2, 3, 4, 5, 6, None, 9],
                              [1, 3, 4, 0, 2, None, 9]]
    if has_llvm():
        dt2 = df1(f.A >= f.B, engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #13
0
ファイル: test_dt_rows.py プロジェクト: yiyisan/datatable
def test_rows_not_equal(df1):
    dt1 = df1(f.A != f.B, engine="eager")
    dt1.internal.check()
    assert dt1.names == df1.names
    assert dt1.topython() == [[0, 1, 2, 5, 6, 7, None],
                              [3, 2, 1, 0, 2, None, 8]]
    if has_llvm():
        dt2 = df1(f.A != f.B, engine="llvm")
        dt2.internal.check()
        assert dt1.names == dt2.names
        assert dt1.topython() == dt2.topython()
コード例 #14
0
def test_dt_isna(src):
    dt0 = dt.Frame(src)
    dt1 = dt0(select=lambda f: dt.isna(f[0]), engine="eager")
    dt1.internal.check()
    assert dt1.stypes == (stype.bool8, )
    pyans = [x is None for x in src]
    assert dt1.topython()[0] == pyans
    if has_llvm():
        dt2 = dt0(select=lambda f: dt.isna(f[0]), engine="llvm")
        dt2.internal.check()
        assert dt2.stypes == (stype.bool8, )
        assert dt2.topython()[0] == pyans
コード例 #15
0
ファイル: test_dt_expr.py プロジェクト: Radu080/datatable
def test_dt_isna(src):
    from datatable import isna
    dt0 = dt.Frame(src)
    dt1 = dt0[:, isna(f[0])]
    dt1.internal.check()
    assert dt1.stypes == (stype.bool8, )
    pyans = [x is None for x in src]
    assert dt1.to_list()[0] == pyans
    if has_llvm():
        dt2 = dt0(select=lambda f: dt.isna(f[0]), engine="llvm")
        dt2.internal.check()
        assert dt2.stypes == (stype.bool8, )
        assert dt2.to_list()[0] == pyans
コード例 #16
0
ファイル: test_dt_cols.py プロジェクト: yiyisan/datatable
def test_cols_expression2():
    # In Py3.6+ we could have used a regular dictionary here...
    from collections import OrderedDict
    selector = OrderedDict([("foo", f.A), ("bar", -f.A)])
    f0 = dt.Frame({"A": range(10)})
    f1 = f0(select=selector, engine="eager")
    f1.internal.check()
    assert f1.names == ("foo", "bar")
    assert f1.stypes == f0.stypes * 2
    assert f1.topython() == [list(range(10)), list(range(0, -10, -1))]
    if has_llvm():
        f2 = f0(select=selector, engine="llvm")
        f2.internal.check()
        assert f2.stypes == f1.stypes
        assert f2.names == f1.names
        assert f2.topython() == f1.topython()