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