Example #1
0
def test_get_default_formatters():
    """A manual test of the `pnx.widgets.dataframe.get_default_formatters` function applied to a
    DataFrame.

    We expect to see to see a `pn.widgets.DataFrame` with

    - ints aligned right, with zero decimals and ',' as thousands separator
    - floats aligned right, with two decimals and ',' as thousands separator
    - strings aligned left

    """
    data = pd.DataFrame(
        {"int": [1, 2, 3000,], "float": [3.14, 6.28, 9000.42,], "str": ["A", "B", "C",],},
        index=[1, 2, 3,],
    )
    formatters = dataframe.get_default_formatters(data)
    code = pnx.Code(
        """\
data = pd.DataFrame(
    {"int": [1, 2, 3000], "float": [3.14, 6.28, 9000.42], "str": ["A", "B", "C"]},
    index=[1, 2, 3],
)
formatters = dataframe.get_default_formatters(data)"""
    )
    return TestApp(
        test_get_default_formatters, pn.widgets.DataFrame(data, formatters=formatters,), code,
    )
Example #2
0
def test_get_default_formatters():
    """We test that formatters for int, float and str are as expected"""
    # Given
    data = pd.DataFrame(
        {
            "int": [
                1,
                2,
                3000,
            ],
            "float": [
                3.14,
                6.28,
                9000.42,
            ],
            "str": [
                "A",
                "B",
                "C",
            ],
        },
        index=[
            1,
            2,
            3,
        ],
    )
    assert not data.index.name
    # When
    actual = dataframe.get_default_formatters(data)
    # Then
    print(actual)
    assert isinstance(
        actual["int"],
        NumberFormatter,
    )
    assert actual["int"].format == dataframe.INT_FORMAT
    assert actual["int"].text_align == dataframe.INT_ALIGN
    assert isinstance(
        actual["float"],
        NumberFormatter,
    )
    assert actual["float"].format == dataframe.FLOAT_FORMAT
    assert actual["float"].text_align == dataframe.FLOAT_ALIGN
    assert "str" not in actual
    assert data.index.name == "index"
    assert actual["index"].format == dataframe.INT_FORMAT
    assert actual["index"].text_align == dataframe.INT_ALIGN