diff --git a/fireant/formats.py b/fireant/formats.py index 611b5e06..b05016a6 100644 --- a/fireant/formats.py +++ b/fireant/formats.py @@ -1,13 +1,11 @@ -import locale +import numpy as np +import pandas as pd from datetime import ( date, datetime, time, ) -import numpy as np -import pandas as pd - INFINITY = "Infinity" NULL_VALUE = 'null' TOTALS_VALUE = 'totals' @@ -116,23 +114,22 @@ def metric_display(value, prefix=None, suffix=None, precision=None): if pd.isnull(value) or value in {np.inf, -np.inf}: return '' + if isinstance(value, bool): + value = str(value).lower() + if isinstance(value, float): if precision is not None: - float_format = '%d' if precision == 0 else '%.{}f'.format(precision) - value = locale.format(float_format, value, grouping=True) + value = '{:,.{precision}f}'.format(value, precision=precision) elif value.is_integer(): - float_format = '%d' - value = locale.format(float_format, value, grouping=True) + value = '{:,.0f}'.format(value) else: - float_format = '%f' # Stripping trailing zeros is necessary because %f can add them if no precision is set - value = locale.format(float_format, value, grouping=True).rstrip('.0') + value = '{:,f}'.format(value).rstrip('.0') if isinstance(value, int): - float_format = '%d' - value = locale.format(float_format, value, grouping=True) + value = '{:,.0f}'.format(value) return '{prefix}{value}{suffix}'.format( prefix=prefix or '', diff --git a/fireant/slicer/widgets/reacttable.py b/fireant/slicer/widgets/reacttable.py index 28a6f7fb..8b193894 100644 --- a/fireant/slicer/widgets/reacttable.py +++ b/fireant/slicer/widgets/reacttable.py @@ -6,6 +6,8 @@ from fireant.formats import ( RAW_VALUE, TOTALS_VALUE, + metric_display, + metric_value, ) from fireant.utils import ( format_dimension_key, @@ -69,26 +71,6 @@ def fillna_index(index, value): return index.fillna(value) -def display_value(value, prefix=None, suffix=None, precision=None): - if isinstance(value, bool): - value = str(value).lower() - - def format_numeric_value(value): - if precision is not None and isinstance(value, float): - return '{:.{precision}f}'.format(value, precision=precision) - - if isinstance(value, int): - return '{:,}'.format(value) - - return '{}'.format(value) - - return '{prefix}{value}{suffix}'.format( - prefix=(prefix or ""), - suffix=(suffix or ""), - value=format_numeric_value(value), - ) - - class ReferenceItem: def __init__(self, item, reference): if reference is None: @@ -371,17 +353,15 @@ def transform_data(data_frame, item_map, dimension_display_values): # Add the values to the row for key, value in series.iteritems(): - # pd.Series casts everything to float, cast it back to int if it's an int - if np.int64 == data_frame[key].dtype: - value = int(value) - - data = {RAW_VALUE: value} + value = metric_value(value) + data = {RAW_VALUE: metric_value(value)} # Try to find a display value for the item item = item_map.get(key[0] if isinstance(key, tuple) else key) - display = display_value(value, item.prefix, item.suffix, item.precision) \ - if item is not None else \ - value + display = metric_display(value, + getattr(item, 'prefix', None), + getattr(item, 'suffix', None), + getattr(item, 'precision', None)) if display is not None: data['display'] = display diff --git a/fireant/tests/slicer/widgets/test_datatables.py b/fireant/tests/slicer/widgets/test_datatables.py index 7b86fd8b..17c41703 100644 --- a/fireant/tests/slicer/widgets/test_datatables.py +++ b/fireant/tests/slicer/widgets/test_datatables.py @@ -41,7 +41,7 @@ def test_single_metric(self): 'render': {'_': 'value', 'display': 'display'}, }], 'data': [{ - 'votes': {'value': 111674336, 'display': '111674336'} + 'votes': {'value': 111674336, 'display': '111,674,336'} }], }, result) @@ -60,7 +60,7 @@ def test_multiple_metrics(self): 'render': {'_': 'value', 'display': 'display'}, }], 'data': [{ - 'votes': {'value': 111674336, 'display': '111674336'}, + 'votes': {'value': 111674336, 'display': '111,674,336'}, 'wins': {'value': 12, 'display': '12'}, }], }, result) @@ -81,7 +81,7 @@ def test_multiple_metrics_reversed(self): }], 'data': [{ 'wins': {'value': 12, 'display': '12'}, - 'votes': {'value': 111674336, 'display': '111674336'}, + 'votes': {'value': 111674336, 'display': '111,674,336'}, }], }, result) @@ -135,22 +135,22 @@ def test_time_series_dim_with_operation(self): 'render': {'_': 'value', 'display': 'display'}, }], 'data': [{ - 'cumsum(votes)': {'display': '15220449', 'value': 15220449}, + 'cumsum(votes)': {'display': '15,220,449', 'value': 15220449}, 'timestamp': {'value': '1996-01-01'} }, { - 'cumsum(votes)': {'display': '31882466', 'value': 31882466}, + 'cumsum(votes)': {'display': '31,882,466', 'value': 31882466}, 'timestamp': {'value': '2000-01-01'} }, { - 'cumsum(votes)': {'display': '51497398', 'value': 51497398}, + 'cumsum(votes)': {'display': '51,497,398', 'value': 51497398}, 'timestamp': {'value': '2004-01-01'} }, { - 'cumsum(votes)': {'display': '72791613', 'value': 72791613}, + 'cumsum(votes)': {'display': '72,791,613', 'value': 72791613}, 'timestamp': {'value': '2008-01-01'} }, { - 'cumsum(votes)': {'display': '93363823', 'value': 93363823}, + 'cumsum(votes)': {'display': '93,363,823', 'value': 93363823}, 'timestamp': {'value': '2012-01-01'} }, { - 'cumsum(votes)': {'display': '111674336', 'value': 111674336}, + 'cumsum(votes)': {'display': '111,674,336', 'value': 111674336}, 'timestamp': {'value': '2016-01-01'} }], }, result) @@ -664,38 +664,38 @@ def test_pivoted_multi_dims_time_series_and_uni(self): 'data': [{ 'timestamp': {'value': '1996-01-01'}, 'votes': { - '1': {'display': '5574387', 'value': 5574387}, - '2': {'display': '9646062', 'value': 9646062} + '1': {'display': '5,574,387', 'value': 5574387}, + '2': {'display': '9,646,062', 'value': 9646062} } }, { 'timestamp': {'value': '2000-01-01'}, 'votes': { - '1': {'display': '6233385', 'value': 6233385}, - '2': {'display': '10428632', 'value': 10428632} + '1': {'display': '6,233,385', 'value': 6233385}, + '2': {'display': '10,428,632', 'value': 10428632} } }, { 'timestamp': {'value': '2004-01-01'}, 'votes': { - '1': {'display': '7359621', 'value': 7359621}, - '2': {'display': '12255311', 'value': 12255311} + '1': {'display': '7,359,621', 'value': 7359621}, + '2': {'display': '12,255,311', 'value': 12255311} } }, { 'timestamp': {'value': '2008-01-01'}, 'votes': { - '1': {'display': '8007961', 'value': 8007961}, - '2': {'display': '13286254', 'value': 13286254} + '1': {'display': '8,007,961', 'value': 8007961}, + '2': {'display': '13,286,254', 'value': 13286254} } }, { 'timestamp': {'value': '2012-01-01'}, 'votes': { - '1': {'display': '7877967', 'value': 7877967}, - '2': {'display': '12694243', 'value': 12694243} + '1': {'display': '7,877,967', 'value': 7877967}, + '2': {'display': '12,694,243', 'value': 12694243} } }, { 'timestamp': {'value': '2016-01-01'}, 'votes': { - '1': {'display': '5072915', 'value': 5072915}, - '2': {'display': '13237598', 'value': 13237598} + '1': {'display': '5,072,915', 'value': 5072915}, + '2': {'display': '13,237,598', 'value': 13237598} } }], }, result) @@ -732,53 +732,53 @@ def test_time_series_ref(self): 'data': [{ 'timestamp': {'value': '2000-01-01'}, 'state': {'display': 'Texas', 'value': 1}, - 'votes': {'display': '6233385', 'value': 6233385.}, - 'votes_eoe': {'display': '5574387', 'value': 5574387.}, + 'votes': {'display': '6,233,385', 'value': 6233385.}, + 'votes_eoe': {'display': '5,574,387', 'value': 5574387.}, }, { 'timestamp': {'value': '2000-01-01'}, 'state': {'display': 'California', 'value': 2}, - 'votes': {'display': '10428632', 'value': 10428632.}, - 'votes_eoe': {'display': '9646062', 'value': 9646062.}, + 'votes': {'display': '10,428,632', 'value': 10428632.}, + 'votes_eoe': {'display': '9,646,062', 'value': 9646062.}, }, { 'timestamp': {'value': '2004-01-01'}, 'state': {'display': 'Texas', 'value': 1}, - 'votes': {'display': '7359621', 'value': 7359621.}, - 'votes_eoe': {'display': '6233385', 'value': 6233385.}, + 'votes': {'display': '7,359,621', 'value': 7359621.}, + 'votes_eoe': {'display': '6,233,385', 'value': 6233385.}, }, { 'timestamp': {'value': '2004-01-01'}, 'state': {'display': 'California', 'value': 2}, - 'votes': {'display': '12255311', 'value': 12255311.}, - 'votes_eoe': {'display': '10428632', 'value': 10428632.}, + 'votes': {'display': '12,255,311', 'value': 12255311.}, + 'votes_eoe': {'display': '10,428,632', 'value': 10428632.}, }, { 'timestamp': {'value': '2008-01-01'}, 'state': {'display': 'Texas', 'value': 1}, - 'votes': {'display': '8007961', 'value': 8007961.}, - 'votes_eoe': {'display': '7359621', 'value': 7359621.}, + 'votes': {'display': '8,007,961', 'value': 8007961.}, + 'votes_eoe': {'display': '7,359,621', 'value': 7359621.}, }, { 'timestamp': {'value': '2008-01-01'}, 'state': {'display': 'California', 'value': 2}, - 'votes': {'display': '13286254', 'value': 13286254.}, - 'votes_eoe': {'display': '12255311', 'value': 12255311.}, + 'votes': {'display': '13,286,254', 'value': 13286254.}, + 'votes_eoe': {'display': '12,255,311', 'value': 12255311.}, }, { 'timestamp': {'value': '2012-01-01'}, 'state': {'display': 'Texas', 'value': 1}, - 'votes': {'display': '7877967', 'value': 7877967.}, - 'votes_eoe': {'display': '8007961', 'value': 8007961.}, + 'votes': {'display': '7,877,967', 'value': 7877967.}, + 'votes_eoe': {'display': '8,007,961', 'value': 8007961.}, }, { 'timestamp': {'value': '2012-01-01'}, 'state': {'display': 'California', 'value': 2}, - 'votes': {'display': '12694243', 'value': 12694243.}, - 'votes_eoe': {'display': '13286254', 'value': 13286254.}, + 'votes': {'display': '12,694,243', 'value': 12694243.}, + 'votes_eoe': {'display': '13,286,254', 'value': 13286254.}, }, { 'timestamp': {'value': '2016-01-01'}, 'state': {'display': 'Texas', 'value': 1}, - 'votes': {'display': '5072915', 'value': 5072915.}, - 'votes_eoe': {'display': '7877967', 'value': 7877967.}, + 'votes': {'display': '5,072,915', 'value': 5072915.}, + 'votes_eoe': {'display': '7,877,967', 'value': 7877967.}, }, { 'timestamp': {'value': '2016-01-01'}, 'state': {'display': 'California', 'value': 2}, - 'votes': {'display': '13237598', 'value': 13237598.}, - 'votes_eoe': {'display': '12694243', 'value': 12694243.}, + 'votes': {'display': '13,237,598', 'value': 13237598.}, + 'votes_eoe': {'display': '12,694,243', 'value': 12694243.}, }], }, result) diff --git a/fireant/tests/slicer/widgets/test_pandas.py b/fireant/tests/slicer/widgets/test_pandas.py index 27a77d42..361a4ad7 100644 --- a/fireant/tests/slicer/widgets/test_pandas.py +++ b/fireant/tests/slicer/widgets/test_pandas.py @@ -219,7 +219,7 @@ def test_metric_format(self): .transform(cont_dim_df / 3, slicer, [slicer.dimensions.timestamp], []) expected = cont_dim_df.copy()[[fm('votes')]] - expected[fm('votes')] = ['${0:.2f}€'.format(x) + expected[fm('votes')] = ['${0:,.2f}€'.format(x) for x in expected[fm('votes')] / 3] expected.index.names = ['Timestamp'] expected.columns = ['Votes'] @@ -289,4 +289,4 @@ def test_inf_in_metrics_with_precision_zero(self): expected.columns = ['Wins'] expected.columns.name = 'Metrics' - pandas.testing.assert_frame_equal(expected, result) \ No newline at end of file + pandas.testing.assert_frame_equal(expected, result) diff --git a/fireant/tests/slicer/widgets/test_reacttable.py b/fireant/tests/slicer/widgets/test_reacttable.py index ddd2b7c4..243011b8 100644 --- a/fireant/tests/slicer/widgets/test_reacttable.py +++ b/fireant/tests/slicer/widgets/test_reacttable.py @@ -2,7 +2,6 @@ from fireant.slicer.widgets.reacttable import ( ReactTable, - display_value, ) from fireant.tests.slicer.mocks import ( CumSum, @@ -467,52 +466,52 @@ def test_time_series_ref(self): '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2000-01-01'}, '$m$votes': {'display': '6,233,385', 'raw': 6233385}, - '$m$votes_eoe': {'display': '5574387.0', 'raw': 5574387.0} + '$m$votes_eoe': {'display': '5,574,387', 'raw': 5574387} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2000-01-01'}, '$m$votes': {'display': '10,428,632', 'raw': 10428632}, - '$m$votes_eoe': {'display': '9646062.0', 'raw': 9646062.0} + '$m$votes_eoe': {'display': '9,646,062', 'raw': 9646062} }, { '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2004-01-01'}, '$m$votes': {'display': '7,359,621', 'raw': 7359621}, - '$m$votes_eoe': {'display': '6233385.0', 'raw': 6233385.0} + '$m$votes_eoe': {'display': '6,233,385', 'raw': 6233385} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2004-01-01'}, '$m$votes': {'display': '12,255,311', 'raw': 12255311}, - '$m$votes_eoe': {'display': '10428632.0', 'raw': 10428632.0} + '$m$votes_eoe': {'display': '10,428,632', 'raw': 10428632} }, { '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2008-01-01'}, '$m$votes': {'display': '8,007,961', 'raw': 8007961}, - '$m$votes_eoe': {'display': '7359621.0', 'raw': 7359621.0} + '$m$votes_eoe': {'display': '7,359,621', 'raw': 7359621} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2008-01-01'}, '$m$votes': {'display': '13,286,254', 'raw': 13286254}, - '$m$votes_eoe': {'display': '12255311.0', 'raw': 12255311.0} + '$m$votes_eoe': {'display': '12,255,311', 'raw': 12255311} }, { '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2012-01-01'}, '$m$votes': {'display': '7,877,967', 'raw': 7877967}, - '$m$votes_eoe': {'display': '8007961.0', 'raw': 8007961.0} + '$m$votes_eoe': {'display': '8,007,961', 'raw': 8007961} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2012-01-01'}, '$m$votes': {'display': '12,694,243', 'raw': 12694243}, - '$m$votes_eoe': {'display': '13286254.0', 'raw': 13286254.0} + '$m$votes_eoe': {'display': '13,286,254', 'raw': 13286254} }, { '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2016-01-01'}, '$m$votes': {'display': '5,072,915', 'raw': 5072915}, - '$m$votes_eoe': {'display': '7877967.0', 'raw': 7877967.0} + '$m$votes_eoe': {'display': '7,877,967', 'raw': 7877967} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2016-01-01'}, '$m$votes': {'display': '13,237,598', 'raw': 13237598}, - '$m$votes_eoe': {'display': '12694243.0', 'raw': 12694243.0} + '$m$votes_eoe': {'display': '12,694,243', 'raw': 12694243} }] }, result) @@ -538,72 +537,72 @@ def test_time_series_ref_multiple_metrics(self): '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2000-01-01'}, '$m$votes': {'display': '6,233,385', 'raw': 6233385}, - '$m$votes_eoe': {'display': '5574387.0', 'raw': 5574387.0}, + '$m$votes_eoe': {'display': '5,574,387', 'raw': 5574387}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2000-01-01'}, '$m$votes': {'display': '10,428,632', 'raw': 10428632}, - '$m$votes_eoe': {'display': '9646062.0', 'raw': 9646062.0}, + '$m$votes_eoe': {'display': '9,646,062', 'raw': 9646062}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }, { '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2004-01-01'}, '$m$votes': {'display': '7,359,621', 'raw': 7359621}, - '$m$votes_eoe': {'display': '6233385.0', 'raw': 6233385.0}, + '$m$votes_eoe': {'display': '6,233,385', 'raw': 6233385}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2004-01-01'}, '$m$votes': {'display': '12,255,311', 'raw': 12255311}, - '$m$votes_eoe': {'display': '10428632.0', 'raw': 10428632.0}, + '$m$votes_eoe': {'display': '10,428,632', 'raw': 10428632}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }, { '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2008-01-01'}, '$m$votes': {'display': '8,007,961', 'raw': 8007961}, - '$m$votes_eoe': {'display': '7359621.0', 'raw': 7359621.0}, + '$m$votes_eoe': {'display': '7,359,621', 'raw': 7359621}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2008-01-01'}, '$m$votes': {'display': '13,286,254', 'raw': 13286254}, - '$m$votes_eoe': {'display': '12255311.0', 'raw': 12255311.0}, + '$m$votes_eoe': {'display': '12,255,311', 'raw': 12255311}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }, { '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2012-01-01'}, '$m$votes': {'display': '7,877,967', 'raw': 7877967}, - '$m$votes_eoe': {'display': '8007961.0', 'raw': 8007961.0}, + '$m$votes_eoe': {'display': '8,007,961', 'raw': 8007961}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2012-01-01'}, '$m$votes': {'display': '12,694,243', 'raw': 12694243}, - '$m$votes_eoe': {'display': '13286254.0', 'raw': 13286254.0}, + '$m$votes_eoe': {'display': '13,286,254', 'raw': 13286254}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }, { '$d$state': {'display': 'Texas', 'raw': '1'}, '$d$timestamp': {'raw': '2016-01-01'}, '$m$votes': {'display': '5,072,915', 'raw': 5072915}, - '$m$votes_eoe': {'display': '7877967.0', 'raw': 7877967.0}, + '$m$votes_eoe': {'display': '7,877,967', 'raw': 7877967}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }, { '$d$state': {'display': 'California', 'raw': '2'}, '$d$timestamp': {'raw': '2016-01-01'}, '$m$votes': {'display': '13,237,598', 'raw': 13237598}, - '$m$votes_eoe': {'display': '12694243.0', 'raw': 12694243.0}, + '$m$votes_eoe': {'display': '12,694,243', 'raw': 12694243}, '$m$wins': {'display': '1', 'raw': 1}, - '$m$wins_eoe': {'display': '1.0', 'raw': 1.0} + '$m$wins_eoe': {'display': '1', 'raw': 1} }] }, result) @@ -618,9 +617,9 @@ def test_transpose(self): {'Header': 'Republican', 'accessor': 'r'}], 'data': [{ '$d$metrics': {'raw': 'Wins'}, - 'd': {'display': 6, 'raw': 6}, - 'i': {'display': 0, 'raw': 0}, - 'r': {'display': 6, 'raw': 6} + 'd': {'display': '6', 'raw': 6}, + 'i': {'display': '0', 'raw': 0}, + 'r': {'display': '6', 'raw': 6} }] }, result) @@ -634,28 +633,28 @@ def test_pivot_second_dimension_with_one_metric(self): {'Header': 'California', 'accessor': '2'}], 'data': [{ '$d$timestamp': {'raw': '1996-01-01'}, - '1': {'display': 1, 'raw': 1}, - '2': {'display': 1, 'raw': 1} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} }, { '$d$timestamp': {'raw': '2000-01-01'}, - '1': {'display': 1, 'raw': 1}, - '2': {'display': 1, 'raw': 1} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} }, { '$d$timestamp': {'raw': '2004-01-01'}, - '1': {'display': 1, 'raw': 1}, - '2': {'display': 1, 'raw': 1} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} }, { '$d$timestamp': {'raw': '2008-01-01'}, - '1': {'display': 1, 'raw': 1}, - '2': {'display': 1, 'raw': 1} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} }, { '$d$timestamp': {'raw': '2012-01-01'}, - '1': {'display': 1, 'raw': 1}, - '2': {'display': 1, 'raw': 1} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} }, { '$d$timestamp': {'raw': '2016-01-01'}, - '1': {'display': 1, 'raw': 1}, - '2': {'display': 1, 'raw': 1} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} }] }, result) @@ -778,16 +777,16 @@ def test_pivot_second_dimension_with_multiple_metrics_and_references(self): '2': {'display': '10,428,632', 'raw': 10428632} }, '$m$votes_eoe': { - '1': {'display': '5574387.0', 'raw': 5574387.0}, - '2': {'display': '9646062.0', 'raw': 9646062.0} + '1': {'display': '5,574,387', 'raw': 5574387}, + '2': {'display': '9,646,062', 'raw': 9646062} }, '$m$wins': { '1': {'display': '1', 'raw': 1}, '2': {'display': '1', 'raw': 1} }, '$m$wins_eoe': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} } }, { '$d$timestamp': {'raw': '2004-01-01'}, @@ -796,16 +795,16 @@ def test_pivot_second_dimension_with_multiple_metrics_and_references(self): '2': {'display': '12,255,311', 'raw': 12255311} }, '$m$votes_eoe': { - '1': {'display': '6233385.0', 'raw': 6233385.0}, - '2': {'display': '10428632.0', 'raw': 10428632.0} + '1': {'display': '6,233,385', 'raw': 6233385}, + '2': {'display': '10,428,632', 'raw': 10428632} }, '$m$wins': { '1': {'display': '1', 'raw': 1}, '2': {'display': '1', 'raw': 1} }, '$m$wins_eoe': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} } }, { '$d$timestamp': {'raw': '2008-01-01'}, @@ -814,16 +813,16 @@ def test_pivot_second_dimension_with_multiple_metrics_and_references(self): '2': {'display': '13,286,254', 'raw': 13286254} }, '$m$votes_eoe': { - '1': {'display': '7359621.0', 'raw': 7359621.0}, - '2': {'display': '12255311.0', 'raw': 12255311.0} + '1': {'display': '7,359,621', 'raw': 7359621}, + '2': {'display': '12,255,311', 'raw': 12255311} }, '$m$wins': { '1': {'display': '1', 'raw': 1}, '2': {'display': '1', 'raw': 1} }, '$m$wins_eoe': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} } }, { '$d$timestamp': {'raw': '2012-01-01'}, @@ -832,16 +831,16 @@ def test_pivot_second_dimension_with_multiple_metrics_and_references(self): '2': {'display': '12,694,243', 'raw': 12694243} }, '$m$votes_eoe': { - '1': {'display': '8007961.0', 'raw': 8007961.0}, - '2': {'display': '13286254.0', 'raw': 13286254.0} + '1': {'display': '8,007,961', 'raw': 8007961}, + '2': {'display': '13,286,254', 'raw': 13286254} }, '$m$wins': { '1': {'display': '1', 'raw': 1}, '2': {'display': '1', 'raw': 1} }, '$m$wins_eoe': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} } }, { '$d$timestamp': {'raw': '2016-01-01'}, @@ -850,16 +849,16 @@ def test_pivot_second_dimension_with_multiple_metrics_and_references(self): '2': {'display': '13,237,598', 'raw': 13237598} }, '$m$votes_eoe': { - '1': {'display': '7877967.0', 'raw': 7877967.0}, - '2': {'display': '12694243.0', 'raw': 12694243.0} + '1': {'display': '7,877,967', 'raw': 7877967}, + '2': {'display': '12,694,243', 'raw': 12694243} }, '$m$wins': { '1': {'display': '1', 'raw': 1}, '2': {'display': '1', 'raw': 1} }, '$m$wins_eoe': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1} } }] }, result) @@ -883,17 +882,17 @@ def test_pivot_single_dimension_as_rows_single_metric_metrics_automatically_pivo {'Header': 'Hillary Clinton', 'accessor': '11'}], 'data': [{ '$d$metrics': {'raw': 'Wins'}, - '1': {'display': 2, 'raw': 2}, - '10': {'display': 2, 'raw': 2}, - '11': {'display': 0, 'raw': 0}, - '2': {'display': 0, 'raw': 0}, - '3': {'display': 0, 'raw': 0}, - '4': {'display': 4, 'raw': 4}, - '5': {'display': 0, 'raw': 0}, - '6': {'display': 0, 'raw': 0}, - '7': {'display': 4, 'raw': 4}, - '8': {'display': 0, 'raw': 0}, - '9': {'display': 0, 'raw': 0} + '1': {'display': '2', 'raw': 2}, + '10': {'display': '2', 'raw': 2}, + '11': {'display': '0', 'raw': 0}, + '2': {'display': '0', 'raw': 0}, + '3': {'display': '0', 'raw': 0}, + '4': {'display': '4', 'raw': 4}, + '5': {'display': '0', 'raw': 0}, + '6': {'display': '0', 'raw': 0}, + '7': {'display': '4', 'raw': 4}, + '8': {'display': '0', 'raw': 0}, + '9': {'display': '0', 'raw': 0} }] }, result) @@ -916,17 +915,17 @@ def test_pivot_single_dimension_as_rows_single_metric_and_transpose_set_to_true( {'Header': 'Hillary Clinton', 'accessor': '11'}], 'data': [{ '$d$metrics': {'raw': 'Wins'}, - '1': {'display': 2, 'raw': 2}, - '10': {'display': 2, 'raw': 2}, - '11': {'display': 0, 'raw': 0}, - '2': {'display': 0, 'raw': 0}, - '3': {'display': 0, 'raw': 0}, - '4': {'display': 4, 'raw': 4}, - '5': {'display': 0, 'raw': 0}, - '6': {'display': 0, 'raw': 0}, - '7': {'display': 4, 'raw': 4}, - '8': {'display': 0, 'raw': 0}, - '9': {'display': 0, 'raw': 0} + '1': {'display': '2', 'raw': 2}, + '10': {'display': '2', 'raw': 2}, + '11': {'display': '0', 'raw': 0}, + '2': {'display': '0', 'raw': 0}, + '3': {'display': '0', 'raw': 0}, + '4': {'display': '4', 'raw': 4}, + '5': {'display': '0', 'raw': 0}, + '6': {'display': '0', 'raw': 0}, + '7': {'display': '4', 'raw': 4}, + '8': {'display': '0', 'raw': 0}, + '9': {'display': '0', 'raw': 0} }] }, result) @@ -950,30 +949,30 @@ def test_pivot_single_dimension_as_rows_multiple_metrics(self): {'Header': 'Hillary Clinton', 'accessor': '11'}], 'data': [{ '$d$metrics': {'raw': 'Wins'}, - '1': {'display': 2, 'raw': 2}, - '10': {'display': 2, 'raw': 2}, - '11': {'display': 0, 'raw': 0}, - '2': {'display': 0, 'raw': 0}, - '3': {'display': 0, 'raw': 0}, - '4': {'display': 4, 'raw': 4}, - '5': {'display': 0, 'raw': 0}, - '6': {'display': 0, 'raw': 0}, - '7': {'display': 4, 'raw': 4}, - '8': {'display': 0, 'raw': 0}, - '9': {'display': 0, 'raw': 0} + '1': {'display': '2', 'raw': 2}, + '10': {'display': '2', 'raw': 2}, + '11': {'display': '0', 'raw': 0}, + '2': {'display': '0', 'raw': 0}, + '3': {'display': '0', 'raw': 0}, + '4': {'display': '4', 'raw': 4}, + '5': {'display': '0', 'raw': 0}, + '6': {'display': '0', 'raw': 0}, + '7': {'display': '4', 'raw': 4}, + '8': {'display': '0', 'raw': 0}, + '9': {'display': '0', 'raw': 0} }, { '$d$metrics': {'raw': 'Votes'}, - '1': {'display': 7579518, 'raw': 7579518}, - '10': {'display': 13438835, 'raw': 13438835}, - '11': {'display': 4871678, 'raw': 4871678}, - '2': {'display': 6564547, 'raw': 6564547}, - '3': {'display': 1076384, 'raw': 1076384}, - '4': {'display': 18403811, 'raw': 18403811}, - '5': {'display': 8294949, 'raw': 8294949}, - '6': {'display': 9578189, 'raw': 9578189}, - '7': {'display': 24227234, 'raw': 24227234}, - '8': {'display': 9491109, 'raw': 9491109}, - '9': {'display': 8148082, 'raw': 8148082} + '1': {'display': '7,579,518', 'raw': 7579518}, + '10': {'display': '13,438,835', 'raw': 13438835}, + '11': {'display': '4,871,678', 'raw': 4871678}, + '2': {'display': '6,564,547', 'raw': 6564547}, + '3': {'display': '1,076,384', 'raw': 1076384}, + '4': {'display': '18,403,811', 'raw': 18403811}, + '5': {'display': '8,294,949', 'raw': 8294949}, + '6': {'display': '9,578,189', 'raw': 9578189}, + '7': {'display': '24,227,234', 'raw': 24227234}, + '8': {'display': '9,491,109', 'raw': 9491109}, + '9': {'display': '8,148,082', 'raw': 8148082} }] }, result) @@ -1035,74 +1034,74 @@ def test_pivot_multi_dims_with_all_levels_totals(self): 'data': [{ '$d$timestamp': {'raw': '1996-01-01'}, '$m$votes': { - '1': {'display': '5574387.0', 'raw': 5574387.0}, - '2': {'display': '9646062.0', 'raw': 9646062.0}, - 'totals': {'display': '15220449.0', 'raw': 15220449.0} + '1': {'display': '5,574,387', 'raw': 5574387}, + '2': {'display': '9,646,062', 'raw': 9646062}, + 'totals': {'display': '15,220,449', 'raw': 15220449} }, '$m$wins': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0}, - 'totals': {'display': '2.0', 'raw': 2.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1}, + 'totals': {'display': '2', 'raw': 2} } }, { '$d$timestamp': {'raw': '2000-01-01'}, '$m$votes': { - '1': {'display': '6233385.0', 'raw': 6233385.0}, - '2': {'display': '10428632.0', 'raw': 10428632.0}, - 'totals': {'display': '16662017.0', 'raw': 16662017.0} + '1': {'display': '6,233,385', 'raw': 6233385}, + '2': {'display': '10,428,632', 'raw': 10428632}, + 'totals': {'display': '16,662,017', 'raw': 16662017} }, '$m$wins': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0}, - 'totals': {'display': '2.0', 'raw': 2.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1}, + 'totals': {'display': '2', 'raw': 2} } }, { '$d$timestamp': {'raw': '2004-01-01'}, '$m$votes': { - '1': {'display': '7359621.0', 'raw': 7359621.0}, - '2': {'display': '12255311.0', 'raw': 12255311.0}, - 'totals': {'display': '19614932.0', 'raw': 19614932.0} + '1': {'display': '7,359,621', 'raw': 7359621}, + '2': {'display': '12,255,311', 'raw': 12255311}, + 'totals': {'display': '19,614,932', 'raw': 19614932} }, '$m$wins': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0}, - 'totals': {'display': '2.0', 'raw': 2.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1}, + 'totals': {'display': '2', 'raw': 2} } }, { '$d$timestamp': {'raw': '2008-01-01'}, '$m$votes': { - '1': {'display': '8007961.0', 'raw': 8007961.0}, - '2': {'display': '13286254.0', 'raw': 13286254.0}, - 'totals': {'display': '21294215.0', 'raw': 21294215.0} + '1': {'display': '8,007,961', 'raw': 8007961}, + '2': {'display': '13,286,254', 'raw': 13286254}, + 'totals': {'display': '21,294,215', 'raw': 21294215} }, '$m$wins': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0}, - 'totals': {'display': '2.0', 'raw': 2.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1}, + 'totals': {'display': '2', 'raw': 2} } }, { '$d$timestamp': {'raw': '2012-01-01'}, '$m$votes': { - '1': {'display': '7877967.0', 'raw': 7877967.0}, - '2': {'display': '12694243.0', 'raw': 12694243.0}, - 'totals': {'display': '20572210.0', 'raw': 20572210.0} + '1': {'display': '7,877,967', 'raw': 7877967}, + '2': {'display': '12,694,243', 'raw': 12694243}, + 'totals': {'display': '20,572,210', 'raw': 20572210} }, '$m$wins': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0}, - 'totals': {'display': '2.0', 'raw': 2.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1}, + 'totals': {'display': '2', 'raw': 2} } }, { '$d$timestamp': {'raw': '2016-01-01'}, '$m$votes': { - '1': {'display': '5072915.0', 'raw': 5072915.0}, - '2': {'display': '13237598.0', 'raw': 13237598.0}, - 'totals': {'display': '18310513.0', 'raw': 18310513.0} + '1': {'display': '5,072,915', 'raw': 5072915}, + '2': {'display': '13,237,598', 'raw': 13237598}, + 'totals': {'display': '18,310,513', 'raw': 18310513} }, '$m$wins': { - '1': {'display': '1.0', 'raw': 1.0}, - '2': {'display': '1.0', 'raw': 1.0}, - 'totals': {'display': '2.0', 'raw': 2.0} + '1': {'display': '1', 'raw': 1}, + '2': {'display': '1', 'raw': 1}, + 'totals': {'display': '2', 'raw': 2} } }, { '$d$timestamp': {'raw': 'Totals'}, @@ -1110,14 +1109,14 @@ def test_pivot_multi_dims_with_all_levels_totals(self): '1': {'display': '', 'raw': ''}, '2': {'display': '', 'raw': ''}, 'totals': { - 'display': '111674336.0', - 'raw': 111674336.0 + 'display': '111,674,336', + 'raw': 111674336 } }, '$m$wins': { '1': {'display': '', 'raw': ''}, '2': {'display': '', 'raw': ''}, - 'totals': {'display': '12.0', 'raw': 12.0} + 'totals': {'display': '12', 'raw': 12} } }] }, result) @@ -1145,63 +1144,63 @@ def test_pivot_first_dimension_and_transpose_with_all_levels_totals(self): 'data': [{ '$d$metrics': {'raw': 'Wins'}, '$d$state': {'display': 'Texas', 'raw': '1'}, - '1996-01-01': {'display': 1.0, 'raw': 1.0}, - '2000-01-01': {'display': 1.0, 'raw': 1.0}, - '2004-01-01': {'display': 1.0, 'raw': 1.0}, - '2008-01-01': {'display': 1.0, 'raw': 1.0}, - '2012-01-01': {'display': 1.0, 'raw': 1.0}, - '2016-01-01': {'display': 1.0, 'raw': 1.0}, + '1996-01-01': {'display': '1', 'raw': 1}, + '2000-01-01': {'display': '1', 'raw': 1}, + '2004-01-01': {'display': '1', 'raw': 1}, + '2008-01-01': {'display': '1', 'raw': 1}, + '2012-01-01': {'display': '1', 'raw': 1}, + '2016-01-01': {'display': '1', 'raw': 1}, 'totals': {'display': '', 'raw': ''} }, { '$d$metrics': {'raw': 'Wins'}, '$d$state': {'display': 'California', 'raw': '2'}, - '1996-01-01': {'display': 1.0, 'raw': 1.0}, - '2000-01-01': {'display': 1.0, 'raw': 1.0}, - '2004-01-01': {'display': 1.0, 'raw': 1.0}, - '2008-01-01': {'display': 1.0, 'raw': 1.0}, - '2012-01-01': {'display': 1.0, 'raw': 1.0}, - '2016-01-01': {'display': 1.0, 'raw': 1.0}, + '1996-01-01': {'display': '1', 'raw': 1}, + '2000-01-01': {'display': '1', 'raw': 1}, + '2004-01-01': {'display': '1', 'raw': 1}, + '2008-01-01': {'display': '1', 'raw': 1}, + '2012-01-01': {'display': '1', 'raw': 1}, + '2016-01-01': {'display': '1', 'raw': 1}, 'totals': {'display': '', 'raw': ''} }, { '$d$metrics': {'raw': 'Wins'}, '$d$state': {'raw': 'Totals'}, - '1996-01-01': {'display': 2.0, 'raw': 2.0}, - '2000-01-01': {'display': 2.0, 'raw': 2.0}, - '2004-01-01': {'display': 2.0, 'raw': 2.0}, - '2008-01-01': {'display': 2.0, 'raw': 2.0}, - '2012-01-01': {'display': 2.0, 'raw': 2.0}, - '2016-01-01': {'display': 2.0, 'raw': 2.0}, - 'totals': {'display': '12.0', 'raw': 12.0} + '1996-01-01': {'display': '2', 'raw': 2}, + '2000-01-01': {'display': '2', 'raw': 2}, + '2004-01-01': {'display': '2', 'raw': 2}, + '2008-01-01': {'display': '2', 'raw': 2}, + '2012-01-01': {'display': '2', 'raw': 2}, + '2016-01-01': {'display': '2', 'raw': 2}, + 'totals': {'display': '12', 'raw': 12} }, { '$d$metrics': {'raw': 'Votes'}, '$d$state': {'display': 'Texas', 'raw': '1'}, - '1996-01-01': {'display': 5574387.0, 'raw': 5574387.0}, - '2000-01-01': {'display': 6233385.0, 'raw': 6233385.0}, - '2004-01-01': {'display': 7359621.0, 'raw': 7359621.0}, - '2008-01-01': {'display': 8007961.0, 'raw': 8007961.0}, - '2012-01-01': {'display': 7877967.0, 'raw': 7877967.0}, - '2016-01-01': {'display': 5072915.0, 'raw': 5072915.0}, + '1996-01-01': {'display': '5,574,387', 'raw': 5574387}, + '2000-01-01': {'display': '6,233,385', 'raw': 6233385}, + '2004-01-01': {'display': '7,359,621', 'raw': 7359621}, + '2008-01-01': {'display': '8,007,961', 'raw': 8007961}, + '2012-01-01': {'display': '7,877,967', 'raw': 7877967}, + '2016-01-01': {'display': '5,072,915', 'raw': 5072915}, 'totals': {'display': '', 'raw': ''} }, { '$d$metrics': {'raw': 'Votes'}, '$d$state': {'display': 'California', 'raw': '2'}, - '1996-01-01': {'display': 9646062.0, 'raw': 9646062.0}, - '2000-01-01': {'display': 10428632.0, 'raw': 10428632.0}, - '2004-01-01': {'display': 12255311.0, 'raw': 12255311.0}, - '2008-01-01': {'display': 13286254.0, 'raw': 13286254.0}, - '2012-01-01': {'display': 12694243.0, 'raw': 12694243.0}, - '2016-01-01': {'display': 13237598.0, 'raw': 13237598.0}, + '1996-01-01': {'display': '9,646,062', 'raw': 9646062}, + '2000-01-01': {'display': '10,428,632', 'raw': 10428632}, + '2004-01-01': {'display': '12,255,311', 'raw': 12255311}, + '2008-01-01': {'display': '13,286,254', 'raw': 13286254}, + '2012-01-01': {'display': '12,694,243', 'raw': 12694243}, + '2016-01-01': {'display': '13,237,598', 'raw': 13237598}, 'totals': {'display': '', 'raw': ''} }, { '$d$metrics': {'raw': 'Votes'}, '$d$state': {'raw': 'Totals'}, - '1996-01-01': {'display': 15220449.0, 'raw': 15220449.0}, - '2000-01-01': {'display': 16662017.0, 'raw': 16662017.0}, - '2004-01-01': {'display': 19614932.0, 'raw': 19614932.0}, - '2008-01-01': {'display': 21294215.0, 'raw': 21294215.0}, - '2012-01-01': {'display': 20572210.0, 'raw': 20572210.0}, - '2016-01-01': {'display': 18310513.0, 'raw': 18310513.0}, - 'totals': {'display': '111674336.0', 'raw': 111674336.0} + '1996-01-01': {'display': '15,220,449', 'raw': 15220449}, + '2000-01-01': {'display': '16,662,017', 'raw': 16662017}, + '2004-01-01': {'display': '19,614,932', 'raw': 19614932}, + '2008-01-01': {'display': '21,294,215', 'raw': 21294215}, + '2012-01-01': {'display': '20,572,210', 'raw': 20572210}, + '2016-01-01': {'display': '18,310,513', 'raw': 18310513}, + 'totals': {'display': '111,674,336', 'raw': 111674336} }] }, result) @@ -1228,148 +1227,62 @@ def test_pivot_second_dimension_and_transpose_with_all_levels_totals(self): 'data': [{ '$d$metrics': {'raw': 'Wins'}, '$d$state': {'display': 'Texas', 'raw': '1'}, - '1996-01-01': {'display': 1.0, 'raw': 1.0}, - '2000-01-01': {'display': 1.0, 'raw': 1.0}, - '2004-01-01': {'display': 1.0, 'raw': 1.0}, - '2008-01-01': {'display': 1.0, 'raw': 1.0}, - '2012-01-01': {'display': 1.0, 'raw': 1.0}, - '2016-01-01': {'display': 1.0, 'raw': 1.0}, + '1996-01-01': {'display': '1', 'raw': 1}, + '2000-01-01': {'display': '1', 'raw': 1}, + '2004-01-01': {'display': '1', 'raw': 1}, + '2008-01-01': {'display': '1', 'raw': 1}, + '2012-01-01': {'display': '1', 'raw': 1}, + '2016-01-01': {'display': '1', 'raw': 1}, 'totals': {'display': '', 'raw': ''} }, { '$d$metrics': {'raw': 'Wins'}, '$d$state': {'display': 'California', 'raw': '2'}, - '1996-01-01': {'display': 1.0, 'raw': 1.0}, - '2000-01-01': {'display': 1.0, 'raw': 1.0}, - '2004-01-01': {'display': 1.0, 'raw': 1.0}, - '2008-01-01': {'display': 1.0, 'raw': 1.0}, - '2012-01-01': {'display': 1.0, 'raw': 1.0}, - '2016-01-01': {'display': 1.0, 'raw': 1.0}, + '1996-01-01': {'display': '1', 'raw': 1}, + '2000-01-01': {'display': '1', 'raw': 1}, + '2004-01-01': {'display': '1', 'raw': 1}, + '2008-01-01': {'display': '1', 'raw': 1}, + '2012-01-01': {'display': '1', 'raw': 1}, + '2016-01-01': {'display': '1', 'raw': 1}, 'totals': {'display': '', 'raw': ''} }, { '$d$metrics': {'raw': 'Wins'}, '$d$state': {'raw': 'Totals'}, - '1996-01-01': {'display': 2.0, 'raw': 2.0}, - '2000-01-01': {'display': 2.0, 'raw': 2.0}, - '2004-01-01': {'display': 2.0, 'raw': 2.0}, - '2008-01-01': {'display': 2.0, 'raw': 2.0}, - '2012-01-01': {'display': 2.0, 'raw': 2.0}, - '2016-01-01': {'display': 2.0, 'raw': 2.0}, - 'totals': {'display': '12.0', 'raw': 12.0} + '1996-01-01': {'display': '2', 'raw': 2}, + '2000-01-01': {'display': '2', 'raw': 2}, + '2004-01-01': {'display': '2', 'raw': 2}, + '2008-01-01': {'display': '2', 'raw': 2}, + '2012-01-01': {'display': '2', 'raw': 2}, + '2016-01-01': {'display': '2', 'raw': 2}, + 'totals': {'display': '12', 'raw': 12} }, { '$d$metrics': {'raw': 'Votes'}, '$d$state': {'display': 'Texas', 'raw': '1'}, - '1996-01-01': {'display': 5574387.0, 'raw': 5574387.0}, - '2000-01-01': {'display': 6233385.0, 'raw': 6233385.0}, - '2004-01-01': {'display': 7359621.0, 'raw': 7359621.0}, - '2008-01-01': {'display': 8007961.0, 'raw': 8007961.0}, - '2012-01-01': {'display': 7877967.0, 'raw': 7877967.0}, - '2016-01-01': {'display': 5072915.0, 'raw': 5072915.0}, + '1996-01-01': {'display': '5,574,387', 'raw': 5574387}, + '2000-01-01': {'display': '6,233,385', 'raw': 6233385}, + '2004-01-01': {'display': '7,359,621', 'raw': 7359621}, + '2008-01-01': {'display': '8,007,961', 'raw': 8007961}, + '2012-01-01': {'display': '7,877,967', 'raw': 7877967}, + '2016-01-01': {'display': '5,072,915', 'raw': 5072915}, 'totals': {'display': '', 'raw': ''} }, { '$d$metrics': {'raw': 'Votes'}, '$d$state': {'display': 'California', 'raw': '2'}, - '1996-01-01': {'display': 9646062.0, 'raw': 9646062.0}, - '2000-01-01': {'display': 10428632.0, 'raw': 10428632.0}, - '2004-01-01': {'display': 12255311.0, 'raw': 12255311.0}, - '2008-01-01': {'display': 13286254.0, 'raw': 13286254.0}, - '2012-01-01': {'display': 12694243.0, 'raw': 12694243.0}, - '2016-01-01': {'display': 13237598.0, 'raw': 13237598.0}, + '1996-01-01': {'display': '9,646,062', 'raw': 9646062}, + '2000-01-01': {'display': '10,428,632', 'raw': 10428632}, + '2004-01-01': {'display': '12,255,311', 'raw': 12255311}, + '2008-01-01': {'display': '13,286,254', 'raw': 13286254}, + '2012-01-01': {'display': '12,694,243', 'raw': 12694243}, + '2016-01-01': {'display': '13,237,598', 'raw': 13237598}, 'totals': {'display': '', 'raw': ''} }, { '$d$metrics': {'raw': 'Votes'}, '$d$state': {'raw': 'Totals'}, - '1996-01-01': {'display': 15220449.0, 'raw': 15220449.0}, - '2000-01-01': {'display': 16662017.0, 'raw': 16662017.0}, - '2004-01-01': {'display': 19614932.0, 'raw': 19614932.0}, - '2008-01-01': {'display': 21294215.0, 'raw': 21294215.0}, - '2012-01-01': {'display': 20572210.0, 'raw': 20572210.0}, - '2016-01-01': {'display': 18310513.0, 'raw': 18310513.0}, - 'totals': {'display': '111674336.0', 'raw': 111674336.0} + '1996-01-01': {'display': '15,220,449', 'raw': 15220449}, + '2000-01-01': {'display': '16,662,017', 'raw': 16662017}, + '2004-01-01': {'display': '19,614,932', 'raw': 19614932}, + '2008-01-01': {'display': '21,294,215', 'raw': 21294215}, + '2012-01-01': {'display': '20,572,210', 'raw': 20572210}, + '2016-01-01': {'display': '18,310,513', 'raw': 18310513}, + 'totals': {'display': '111,674,336', 'raw': 111674336} }] }, result) - - -class ReactTableDisplayValueFormat(TestCase): - def test_str_value_no_formats(self): - display = display_value('abcdef') - self.assertEqual('abcdef', display) - - def test_bool_true_value_no_formats(self): - display = display_value(True) - self.assertEqual('true', display) - - def test_bool_false_value_no_formats(self): - display = display_value(False) - self.assertEqual('false', display) - - def test_int_value_no_formats(self): - display = display_value(12345) - self.assertEqual('12,345', display) - - def test_decimal_value_no_formats(self): - display = display_value(12345.123456789) - self.assertEqual('12345.123456789', display) - - def test_str_value_with_prefix(self): - display = display_value('abcdef', prefix='$') - self.assertEqual('$abcdef', display) - - def test_bool_true_value_with_prefix(self): - display = display_value(True, prefix='$') - self.assertEqual('$true', display) - - def test_bool_false_value_with_prefix(self): - display = display_value(False, prefix='$') - self.assertEqual('$false', display) - - def test_int_value_with_prefix(self): - display = display_value(12345, prefix='$') - self.assertEqual('$12,345', display) - - def test_decimal_value_with_prefix(self): - display = display_value(12345.123456789, prefix='$') - self.assertEqual('$12345.123456789', display) - - def test_str_value_with_suffix(self): - display = display_value('abcdef', suffix='€') - self.assertEqual('abcdef€', display) - - def test_bool_true_value_with_suffix(self): - display = display_value(True, suffix='€') - self.assertEqual('true€', display) - - def test_bool_false_value_with_suffix(self): - display = display_value(False, suffix='€') - self.assertEqual('false€', display) - - def test_int_value_with_suffix(self): - display = display_value(12345, suffix='€') - self.assertEqual('12,345€', display) - - def test_decimal_value_with_suffix(self): - display = display_value(12345.123456789, suffix='€') - self.assertEqual('12345.123456789€', display) - - def test_str_value_with_precision(self): - display = display_value('abcdef', precision=2) - self.assertEqual('abcdef', display) - - def test_bool_true_value_with_precision(self): - display = display_value(True, precision=2) - self.assertEqual('true', display) - - def test_bool_false_value_with_precision(self): - display = display_value(False, precision=2) - self.assertEqual('false', display) - - def test_int_value_with_precision(self): - display = display_value(12345, precision=2) - self.assertEqual('12,345', display) - - def test_decimal_value_with_precision_0(self): - display = display_value(12345.123456789, precision=0) - self.assertEqual('12345', display) - - def test_decimal_value_with_precision_2(self): - display = display_value(12345.123456789, precision=2) - self.assertEqual('12345.12', display) diff --git a/fireant/tests/test_formats.py b/fireant/tests/test_formats.py index e1ae49bd..54a885f8 100644 --- a/fireant/tests/test_formats.py +++ b/fireant/tests/test_formats.py @@ -59,33 +59,97 @@ def test_timestamp_data_point_is_returned_as_string_iso_no_time(self): class DisplayValueTests(TestCase): - def test_precision_default(self): - result = formats.metric_display(0.123456789) - self.assertEqual('0.123457', result) + def test_str_value_no_formats(self): + display = formats.metric_display('abcdef') + self.assertEqual('abcdef', display) - def test_zero_precision(self): - result = formats.metric_display(0.123456789, precision=0) - self.assertEqual('0', result) + def test_bool_true_value_no_formats(self): + display = formats.metric_display(True) + self.assertEqual('true', display) - def test_precision(self): - result = formats.metric_display(0.123456789, precision=2) - self.assertEqual('0.12', result) + def test_bool_false_value_no_formats(self): + display = formats.metric_display(False) + self.assertEqual('false', display) - def test_precision_zero(self): - result = formats.metric_display(0.0) - self.assertEqual('0', result) + def test_int_value_no_formats(self): + display = formats.metric_display(12345) + self.assertEqual('12,345', display) - def test_precision_trim_trailing_zeros(self): - result = formats.metric_display(1.01) - self.assertEqual('1.01', result) + def test_decimal_value_no_formats(self): + display = formats.metric_display(12345.123456789) + self.assertEqual('12,345.123457', display) + + def test_str_value_with_prefix(self): + display = formats.metric_display('abcdef', prefix='$') + self.assertEqual('$abcdef', display) + + def test_bool_true_value_with_prefix(self): + display = formats.metric_display(True, prefix='$') + self.assertEqual('$true', display) + + def test_bool_false_value_with_prefix(self): + display = formats.metric_display(False, prefix='$') + self.assertEqual('$false', display) + + def test_int_value_with_prefix(self): + display = formats.metric_display(12345, prefix='$') + self.assertEqual('$12,345', display) + + def test_decimal_value_with_prefix(self): + display = formats.metric_display(12345.123456789, prefix='$') + self.assertEqual('$12,345.123457', display) + + def test_str_value_with_suffix(self): + display = formats.metric_display('abcdef', suffix='€') + self.assertEqual('abcdef€', display) + + def test_bool_true_value_with_suffix(self): + display = formats.metric_display(True, suffix='€') + self.assertEqual('true€', display) + + def test_bool_false_value_with_suffix(self): + display = formats.metric_display(False, suffix='€') + self.assertEqual('false€', display) - def test_prefix(self): - result = formats.metric_display(0.12, prefix='$') - self.assertEqual('$0.12', result) + def test_int_value_with_suffix(self): + display = formats.metric_display(12345, suffix='€') + self.assertEqual('12,345€', display) - def test_suffix(self): - result = formats.metric_display(0.12, suffix='€') - self.assertEqual('0.12€', result) + def test_decimal_value_with_suffix(self): + display = formats.metric_display(12345.123456789, suffix='€') + self.assertEqual('12,345.123457€', display) + + def test_str_value_with_precision(self): + display = formats.metric_display('abcdef', precision=2) + self.assertEqual('abcdef', display) + + def test_bool_true_value_with_precision(self): + display = formats.metric_display(True, precision=2) + self.assertEqual('true', display) + + def test_bool_false_value_with_precision(self): + display = formats.metric_display(False, precision=2) + self.assertEqual('false', display) + + def test_int_value_with_precision(self): + display = formats.metric_display(12345, precision=2) + self.assertEqual('12,345', display) + + def test_decimal_value_with_precision_0(self): + display = formats.metric_display(12345.123456789, precision=0) + self.assertEqual('12,345', display) + + def test_decimal_value_with_precision_2(self): + display = formats.metric_display(12345.123456789, precision=2) + self.assertEqual('12,345.12', display) + + def test_decimal_value_with_precision_9(self): + display = formats.metric_display(12345.123456789, precision=9) + self.assertEqual('12,345.123456789', display) + + def test_decimal_value_with_precision_trim_trailing_zeros(self): + result = formats.metric_display(1.01) + self.assertEqual('1.01', result) class CoerceTypeTests(TestCase):