Exemple #1
0
def test_FmtAppendTotalsColumn_modify_dataframe():
    fmt = pbtf.FmtAppendTotalsColumn()
    res = fmt._modify_dataframe(df)
    expected = pd.Series([3., 12., 21.],
                         name='Total',
                         index=[pbtf.HEADER_ROW_NAME, 'a', 'b'])
    assert expected.equals(res.iloc[:, -1])

    fmt = pbtf.FmtAppendTotalsColumn(operator=pbtf.OP_MEAN)
    res = fmt._modify_dataframe(df)
    expected = pd.Series([1., 4., 7.],
                         name='Total',
                         index=[pbtf.HEADER_ROW_NAME, 'a', 'b'])
    assert expected.equals(res.iloc[:, -1])

    fmt = pbtf.FmtAppendTotalsColumn(operator=pbtf.OP_NONE)
    res = fmt._modify_dataframe(df)
    expected = pd.Series(['', '', ''],
                         name='Total',
                         index=[pbtf.HEADER_ROW_NAME, 'a', 'b'])
    assert expected.equals(res.iloc[:, -1])

    fmt = pbtf.FmtAppendTotalsColumn(column_name=TEST_STRING)
    res = fmt._modify_dataframe(df)
    expected = pd.Series([3., 12., 21.],
                         name=TEST_STRING,
                         index=[pbtf.HEADER_ROW_NAME, 'a', 'b'])
    assert expected.equals(res.iloc[:, -1])

    fmt = pbtf.FmtAppendTotalsColumn(total_rows=['b'])
    res = fmt._modify_dataframe(df)
    expected = pd.Series(['', '', 21.],
                         name='Total',
                         index=[pbtf.HEADER_ROW_NAME, 'a', 'b'])
    assert expected.equals(res.iloc[:, -1])
Exemple #2
0
def test_FmtAppendTotalsColumn_cell_css():
    column_name = TEST_STRING
    fmt = pbtf.FmtAppendTotalsColumn(column_name=column_name)
    data = FormatterData(None, pbtf.HEADER_ROW_NAME, None, df)
    res = fmt._create_cell_level_css(data)
    assert res is None

    fmt = pbtf.FmtAppendTotalsColumn(bold=True,
                                     column_name=column_name,
                                     background_color=colors.LIGHT_GREY,
                                     font_color=colors.LIGHT_GREY)
    data = FormatterData(None, None, column_name, df)
    res = fmt._create_cell_level_css(data)
    assert pbtf.CSS_BOLD in res
    assert pbtf.CSS_COLOR + colors.css_color(colors.LIGHT_GREY) in res
    assert pbtf.CSS_BACKGROUND_COLOR + colors.css_color(
        colors.LIGHT_GREY) in res

    fmt = pbtf.FmtAppendTotalsRow(row_name=column_name,
                                  bold=None,
                                  background_color=None,
                                  font_color=None)
    data = FormatterData(None, 'a', None, df)
    res = fmt._create_cell_level_css(data)
    assert res is None
Exemple #3
0
def test_formatters_with_operator_on_df_with_nans_replaces():
    df = pd.DataFrame(np.arange(8, dtype=float).reshape(2, 4), index=['a', 'b'], columns=['aa', 'bb', 'cc', 'dd'])
    df.iloc[0, 0] = np.nan
    fmt_nan_replace = tf.FmtReplaceNaN()
    fmt_sum_rows = tf.FmtAppendTotalsRow()
    fmt_sum_columns = tf.FmtAppendTotalsColumn()

    b_no_replace = Block(df, formatters=[fmt_sum_rows, fmt_sum_columns], use_default_formatters=False)

    b_replace = Block(df, formatters=[fmt_nan_replace, fmt_sum_rows, fmt_sum_columns],
                      use_default_formatters=False)

    assert_series_equal(b_replace.df.iloc[:, -1],  b_no_replace.df.iloc[:, -1], check_dtype=False)
    assert_series_equal(b_replace.df.iloc[-1, :],  b_no_replace.df.iloc[-1, :], check_dtype=False)