def test_fread_from_text1(): d0 = dt.fread(text="A") frame_integrity_check(d0) assert d0.names == ("A", ) assert d0.shape == (0, 1) assert d0.source == "<text>"
def test_rows_less_than(df1): dt1 = df1[f.A < f.B, :] frame_integrity_check(dt1) assert dt1.names == df1.names assert dt1.to_list() == [[0, 1], [3, 2]]
def test_rows_less_than_or_equal(df1): dt1 = df1[f.A <= f.B, :] frame_integrity_check(dt1) assert dt1.names == df1.names assert dt1.to_list() == [[0, 1, 3, 4, None, 9], [3, 2, 3, 4, None, 9]]
def test_rows_expr3(dt0): dt2 = dt0[f.colA < f.colB, :] frame_integrity_check(dt2) assert dt2.shape == (2, 3) assert dt2.to_list() == [[0, 1], [7, 9], [5, 1.3]]
def test_rows_equal(df1): dt1 = df1[f.A == f.B, :] frame_integrity_check(dt1) assert dt1.names == df1.names assert dt1.to_list() == [[3, 4, None, 9], [3, 4, None, 9]]
def test_rows_multislice6(): DT = dt.Frame(range(20)) res = DT[[slice(100), slice(4, None, -2)], :] frame_integrity_check(res) assert res.ncols == 1 assert res.to_list()[0] == list(range(20)) + [4, 2, 0]
def test_issue1970(): DT = dt.Frame(A=[], stype=dt.float32) DT.nrows = 2 RES = DT[dt.Frame([None], stype=int), :] frame_integrity_check(RES) assert_equals(RES, dt.Frame(A=[None], stype=DT.stype))
def test_int16_small(): d0 = dt.Frame([0, -10, 100, -1000, 10000, 2, 999, None]) assert d0.stypes[0] == stype.int16 d1 = d0.sort(0) frame_integrity_check(d1) assert d1.to_list() == [[None, -1000, -10, 0, 2, 100, 999, 10000]]
def test_int16_large(): d0 = dt.Frame([(i * 111119) % 10007 - 5003 for i in range(10007)]) d1 = d0.sort(0) assert d1.stypes == (stype.int16, ) frame_integrity_check(d1) assert d1.to_list() == [list(range(-5003, 5004))]
def test_fread_skip_to_line_large(): # Note: exception is not thrown, instead an empty Frame is returned d0 = dt.fread("a,b\n1,2\n3,4\n5,6\n", skip_to_line=1000) frame_integrity_check(d0) assert d0.shape == (0, 0)
def test_int8_large(): d0 = dt.Frame([(i * 1327) % 101 - 50 for i in range(1010)]) d1 = d0.sort(0) assert d1.stypes == (stype.int8, ) frame_integrity_check(d1) assert d1.to_list() == [sum(([i] * 10 for i in range(-50, 51)), [])]
def test_fread_skip_to_line(): d0 = dt.fread("a,z\nv,1\nC,D\n1,2\n", skip_to_line=3) frame_integrity_check(d0) assert d0.names == ("C", "D") assert d0.to_list() == [[1], [2]]
def test_fread_from_cmd1(): d0 = dt.fread(cmd="ls -l") frame_integrity_check(d0) d0.source == "ls -l"
def test_fread_columns_set1(): text = ("C1,C2,C3,C4\n" "1,3.3,7,\"Alice\"\n" "2,,,\"Bob\"") d0 = dt.fread(text=text, columns={"C1", "C3"}) frame_integrity_check(d0) assert d0.names == ("C1", "C3") assert d0.to_list() == [[1, 2], [7, None]]
def test_rows_multislice4(): DT = dt.Frame(range(20)) res = DT[[range(5), 3, -1, range(8, -2, -2)], :] frame_integrity_check(res) assert res.ncols == 1 assert res.to_list()[0] == [0, 1, 2, 3, 4, 3, 19, 8, 6, 4, 2, 0]
def test_sort_len0(): d0 = dt.Frame([[]]) assert d0.shape == (0, 1) d1 = d0.sort(0) frame_integrity_check(d1) assert d1.shape == (0, 1)
def test_rows_multislice5(): DT = dt.Frame(range(20)) res = DT[[range(3), slice(4, 105, 0)], :] frame_integrity_check(res) assert res.ncols == 1 assert res.to_list()[0] == [0, 1, 2] + [4] * 105
def test_int64_small_stable(): d0 = dt.Frame([[0, None, -1000, 11**11] * 3, range(12)]) assert d0.stypes == (stype.int64, stype.int32) d1 = d0[:, 1, sort(0)] frame_integrity_check(d1) assert d1.to_list() == [[1, 5, 9, 2, 6, 10, 0, 4, 8, 3, 7, 11]]
def test_rows_multislice7(): DT = dt.Frame(range(20)) res = DT[[range(-5, 0, 2)], :] frame_integrity_check(res) assert res.to_list() == [[15, 17, 19]]
def test_sort_len1(): d0 = dt.Frame([10**6]) assert d0.shape == (1, 1) d1 = d0.sort(0) frame_integrity_check(d1) assert d1.to_list() == [[10**6]]
def test_rows_expr1(dt0): dt2 = dt0[f.colA, :] frame_integrity_check(dt2) assert dt2.shape == (5, 3) assert dt2.to_list()[1] == [-11, 9, 0, 1, None]
def test_sort_view2(): d0 = dt.Frame([4, 1, 0, 5, -3, 12, 99, 7]) d1 = d0.sort(0) d2 = d1[:, :, sort(0)] frame_integrity_check(d2) assert d2.to_list() == d1.to_list()
def test_rows_expr4(dt0): dt1 = dt0[f.colB == 0, :] frame_integrity_check(dt1) assert dt1.shape == (2, 3) assert dt1.to_list() == [[0, 1], [0, 0], [0, -2.6]]
def test_sort_view_large_strs(): d0 = dt.Frame(list("abcbpeiuqenvkjqperufhqperofin;d") * 100) d1 = d0[:, ::2].sort(0) frame_integrity_check(d1) elems = d1.to_list()[0] assert elems == sorted(elems)
def test_rows_not_equal(df1): dt1 = df1[f.A != f.B, :] frame_integrity_check(dt1) assert dt1.names == df1.names assert dt1.to_list() == [[0, 1, 2, 5, 6, 7, None], [3, 2, 1, 0, 2, None, 8]]
def test_sort_simple(): d0 = dt.Frame([random.randint(0, 20) for _ in range(100)]) d1 = d0[:, :, sort(0)] frame_integrity_check(d1) assert d1.shape == d0.shape assert d1.to_list() == [sorted(d0.to_list()[0])]
def test_rows_greater_than(df1): dt1 = df1[f.A > f.B, :] frame_integrity_check(dt1) assert dt1.names == df1.names assert dt1.to_list() == [[2, 5, 6], [1, 0, 2]]
def test_rows_0step_slice(): DT = dt.Frame(range(5)) res = DT[3:100:0, :] frame_integrity_check(res) assert res.to_list() == [[3] * 100]
def test_rows_greater_than_or_equal(df1): dt1 = df1[f.A >= f.B, :] frame_integrity_check(dt1) assert dt1.names == df1.names assert dt1.to_list() == [[2, 3, 4, 5, 6, None, 9], [1, 3, 4, 0, 2, None, 9]]
def test_fread_columns_list3(): d0 = dt.fread(text="A,B,C\n1,2,3", columns=[("foo", str), None, None]) frame_integrity_check(d0) assert d0.names == ("foo", ) assert d0.to_list() == [["1"]]