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, )
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