コード例 #1
0
def test_render_replace_many_columns():
    assert_result_equals(
        render(
            make_table(
                make_column("A", ["a"]),
                make_column("B", ["b"]),
                make_column("C", [dt(2000, 2, 3, 4)]),
                make_column("D", ["d"]),
                make_column("E", ["e"]),
                make_column("F", ["f"]),
            ),
            P(
                colname="C",
                outputs=[
                    dict(outcolname="A", part="dateyear"),
                    dict(outcolname="F", part="datemonth"),
                    dict(outcolname="D", part="date"),
                    dict(outcolname="G", part="time_minutes"),
                ],
            ),
        ),
        ArrowRenderResult(
            make_table(
                make_column("B", ["b"]),
                make_column("A", [datetime.date(2000, 1, 1)], unit="year"),
                make_column("F", [datetime.date(2000, 2, 1)], unit="month"),
                make_column("D", [datetime.date(2000, 2, 3)]),
                make_column("G", ["04:00"]),
                make_column("E", ["e"]),
            ), ),
    )
コード例 #2
0
def test_render_no_outcolname_is_no_op():
    assert_result_equals(
        render(
            make_table(make_column("A", [dt()])),
            P(colname="A", outputs=[dict(outcolname="", part="date")]),
        ),
        ArrowRenderResult(make_table(make_column("A", [dt()]))),
    )
コード例 #3
0
def test_render_date_timezone_converted_null_time_is_none():
    assert_result_equals(
        render(
            make_table(make_column("A", [None], pa.timestamp("ns"))),
            P(
                colname="A",
                timezone="Pacific/Honolulu",
                outputs=[dict(outcolname="B", part="time_minutes")],
            ),
        ),
        ArrowRenderResult(make_table(make_column("B", [None], pa.utf8()))),
    )
コード例 #4
0
def test_render_time_seconds():
    assert_result_equals(
        render(
            make_table(
                make_column(
                    "A",
                    [dt(2000, 1, 1, 2, 3, 4),
                     dt(2001, 2, 3, 13, 0, 6), None])),
            P(colname="A", outputs=[dict(outcolname="B",
                                         part="time_seconds")]),
        ),
        ArrowRenderResult(
            make_table(make_column("B", ["02:03:04", "13:00:06", None]))),
    )
コード例 #5
0
def test_render_date():
    assert_result_equals(
        render(
            make_table(make_column("A",
                                   [dt(2000), dt(2001, 2, 3), None])),
            P(colname="A", outputs=[dict(outcolname="B", part="date")]),
        ),
        ArrowRenderResult(
            make_table(
                make_column("B", [
                    datetime.date(2000, 1, 1),
                    datetime.date(2001, 2, 3), None
                ]))),
    )
コード例 #6
0
def test_render_number_second():
    assert_result_equals(
        render(
            make_table(
                make_column(
                    "A",
                    [dt(2000, 1, 1, 2, 3, 4),
                     dt(2001, 2, 3, 13, 0, 6), None])),
            P(colname="A", outputs=[dict(outcolname="B", part="second")]),
        ),
        ArrowRenderResult(
            make_table(make_column("B", [4, 6, None], pa.int8(),
                                   format="{:d}"))),
    )
コード例 #7
0
def test_render_replace_later_column_with_same_name():
    assert_result_equals(
        render(
            make_table(
                make_column("A", [1]),
                make_column("B", [dt(2000, 1, 1)]),
                make_column("C", ["c"]),
            ),
            P(colname="B", outputs=[dict(outcolname="C",
                                         part="time_minutes")]),
        ),
        ArrowRenderResult(
            make_table(
                make_column("A", [1]),
                make_column("C", ["00:00"]),
            ), ),
    )
コード例 #8
0
def test_render_duplicate_output_column_name():
    assert_result_equals(
        render(
            make_table(
                make_column("A", [1]),
                make_column("B", [dt(2000, 1, 1)]),
            ),
            P(
                colname="B",
                outputs=[
                    dict(outcolname="C", part="time_minutes"),
                    dict(outcolname="C", part="time_seconds"),
                ],
            ),
        ),
        ArrowRenderResult(
            make_table(
                make_column("A", [1]),
                make_column("C", ["00:00:00"]),
            ), ),
    )
コード例 #9
0
def test_render_timezone_positive_offset():
    assert_result_equals(
        render(
            make_table(
                make_column(
                    "A",
                    [
                        dt(2000, 1, 1),
                        dt(2000, 1, 1, 4, 59),
                        # DST starts 2am Apr 2, 2000 -- and becomes 3am
                        dt(2000, 4, 2, 5),
                        dt(2000, 4, 2, 6),
                        dt(2000, 4, 2, 7),
                        # DST ends 2am Oct 29, 2000 -- and becomes 1am
                        dt(2000, 10, 29, 5),
                        dt(2000, 10, 29, 6),
                        dt(2000, 10, 29, 7),
                    ],
                )),
            P(
                colname="A",
                timezone="America/Montreal",
                outputs=[
                    dict(outcolname="date", part="date"),
                    dict(outcolname="time_minutes", part="time_minutes"),
                    dict(outcolname="year", part="year"),
                ],
            ),
        ),
        ArrowRenderResult(
            make_table(
                make_column(
                    "date",
                    [
                        datetime.date(1999, 12, 31),
                        datetime.date(1999, 12, 31),
                        datetime.date(2000, 4, 2),
                        datetime.date(2000, 4, 2),
                        datetime.date(2000, 4, 2),
                        datetime.date(2000, 10, 29),
                        datetime.date(2000, 10, 29),
                        datetime.date(2000, 10, 29),
                    ],
                ),
                make_column(
                    "time_minutes",
                    [
                        "19:00",
                        "23:59",
                        "00:00",
                        "01:00",
                        "03:00",
                        "01:00",
                        "01:00",
                        "02:00",
                    ],
                ),
                make_column(
                    "year",
                    [1999, 1999, 2000, 2000, 2000, 2000, 2000, 2000],
                    pa.int16(),
                    format="{:d}",
                ),
            )),
    )