def test_format_int_as_float(self): series = pd.Series([1, 2, 3, 4], dtype=int) column_type = ColumnType.NUMBER(format='{:.1f}') result = column_type.format_series(series) assert_series_equal(result, pd.Series(['1.0', '2.0', '3.0', '4.0']))
def test_format_float_as_int(self): series = pd.Series([1.1]) column_type = ColumnType.NUMBER(format='{:d}') result = column_type.format_series(series) assert_series_equal(result, pd.Series(['1']))
def test_custom_format(self): series = pd.Series([1.1, 2231, np.nan, 0.123]) column_type = ColumnType.NUMBER(format='${:0,.2f}') result = column_type.format_series(series) assert_series_equal(result, pd.Series(['$1.10', '$2,231.00', np.nan, '$0.12']))
def test_default_format(self): series = pd.Series([1.1, 2.231, np.nan]) column_type = ColumnType.NUMBER() result = column_type.format_series(series) assert_series_equal(result, pd.Series(['1.1', '2.231', np.nan]))
def test_format_disallow_invalid_type(self): with self.assertRaisesRegex(ValueError, "Unknown format code 'T'"): ColumnType.NUMBER('{:T}')
def test_clean_column_missing_becomes_empty_string(self): context = RenderContext( None, None, TableShape(3, [Column("A", ColumnType.NUMBER())]), None, None) result = clean_value(ParamDType.Column(), "B", context) self.assertEqual(result, "")
def test_clean_column_valid(self): context = RenderContext( None, None, TableShape(3, [Column("A", ColumnType.NUMBER())]), None, None) result = clean_value(ParamDType.Column(), "A", context) self.assertEqual(result, "A")