def test_time_series_dim(self): result = CSV(mock_dataset.fields.wins) \ .transform(dimx1_date_df, [mock_dataset.fields.timestamp], []) expected = dimx1_date_df.copy()[[f('wins')]] expected.index.names = ['Timestamp'] expected.columns = ['Wins'] expected = expected.applymap(format_float_raw) self.assertEqual(expected.to_csv(**csv_options), result)
def test_dimx1_date(self): result = Pandas(mock_dataset.fields.wins).transform(dimx1_date_df, [mock_dataset.fields.timestamp], []) expected = dimx1_date_df.copy()[[f('wins')]] expected.index.names = ['Timestamp'] expected.columns = ['Wins'] expected.columns.name = 'Metrics' expected = expected.applymap(format_float) pandas.testing.assert_frame_equal(expected, result)
def test_sort_value_greater_than_number_of_columns_is_ignored(self): result = Pandas(mock_dataset.fields.wins, sort=[5]) \ .transform(dimx1_date_df, mock_dataset, [mock_dataset.fields.timestamp], []) expected = dimx1_date_df.copy()[[f('wins')]] expected.index.names = ['Timestamp'] expected.columns = ['Wins'] expected.columns.name = 'Metrics' expected = expected.applymap(_format_float) pandas.testing.assert_frame_equal(expected, result)
def test_metricx2_sort_value_desc(self): result = Pandas(mock_dataset.fields.wins, sort=[1], ascending=[False]) \ .transform(dimx1_date_df, mock_dataset, [mock_dataset.fields.timestamp], []) expected = dimx1_date_df.copy()[[f('wins')]] expected.index.names = ['Timestamp'] expected.columns = ['Wins'] expected.columns.name = 'Metrics' expected = expected.sort_values(['Wins'], ascending=False) expected = expected.applymap(_format_float) pandas.testing.assert_frame_equal(expected, result)
def test_metricx2_sort_index_and_value(self): result = Pandas(mock_dataset.fields.wins, sort=[-0, 1]).transform( dimx1_date_df, [mock_dataset.fields.timestamp], [] ) expected = dimx1_date_df.copy()[[f('wins')]] expected.index.names = ['Timestamp'] expected.columns = ['Wins'] expected.columns.name = 'Metrics' expected = ( expected.reset_index().sort_values(['Timestamp', 'Wins'], ascending=[True, False]).set_index('Timestamp') ) expected = expected.applymap(format_float) pandas.testing.assert_frame_equal(expected, result)
def test_metric_format(self): import copy votes = copy.copy(mock_dataset.fields.votes) votes.prefix = '$' votes.suffix = '€' votes.precision = 2 # divide the data frame by 3 to get a repeating decimal so we can check precision result = Pandas(votes).transform(dimx1_date_df / 3, [mock_dataset.fields.timestamp], []) f_votes = f('votes') expected = dimx1_date_df.copy()[[f_votes]] expected[f_votes] = ['${0:,.2f}€'.format(x) for x in expected[f_votes] / 3] expected.index.names = ['Timestamp'] expected.columns = ['Votes'] expected.columns.name = 'Metrics' pandas.testing.assert_frame_equal(expected, result)