def test_str_dim(self): result = CSV(mock_dataset.fields.wins) \ .transform(dimx1_str_df, mock_dataset, [mock_dataset.fields.political_party], []) expected = dimx1_str_df.copy()[[f('wins')]] expected.index = pd.Index(['Democrat', 'Independent', 'Republican'], name='Party') expected.columns = ['Wins'] self.assertEqual(expected.to_csv(**csv_options), result)
def test_dimx1_str(self): result = Pandas(mock_dataset.fields.wins).transform(dimx1_str_df, [mock_dataset.fields.political_party], []) expected = dimx1_str_df.copy()[[f('wins')]] expected.index = pd.Index(['Democrat', 'Independent', 'Republican'], name='Party') expected.columns = ['Wins'] expected.columns.name = 'Metrics' expected = expected.applymap(format_float) pandas.testing.assert_frame_equal(expected, result)
def test_dimx1_int(self): result = Pandas(mock_dataset.fields.wins) \ .transform(dimx1_str_df, mock_dataset, [mock_dataset.fields['candidate-id']], []) expected = dimx1_str_df.copy()[[f('wins')]] expected.index.names = ['Candidate ID'] expected.columns = ['Wins'] expected.columns.name = 'Metrics' expected = expected.applymap(_format_float) pandas.testing.assert_frame_equal(expected, result)
def test_pivoted_single_dimension_transposes_data_frame(self): result = CSV(mock_dataset.fields.wins, pivot=[mock_dataset.fields.political_party]) \ .transform(dimx1_str_df, mock_dataset, [mock_dataset.fields.political_party], []) expected = dimx1_str_df.copy()[[f('wins')]] expected.index = pd.Index(['Democrat', 'Independent', 'Republican'], name='Party') expected.columns = ['Wins'] expected.columns.names = ['Metrics'] expected = expected.transpose() self.assertEqual(expected.to_csv(**csv_options), result)
def test_neginf_in_metrics(self): cat_dim_df_with_nan = dimx1_str_df.copy() cat_dim_df_with_nan['$wins'] = cat_dim_df_with_nan['$wins'].apply(float) cat_dim_df_with_nan.iloc[2, 1] = np.inf result = Pandas(mock_dataset.fields.wins) \ .transform(cat_dim_df_with_nan, mock_dataset, [mock_dataset.fields.political_party], []) expected = cat_dim_df_with_nan.copy()[[f('wins')]] expected.index = pd.Index(['Democrat', 'Independent', 'Republican'], name='Party') expected.columns = ['Wins'] expected.columns.name = 'Metrics' expected = expected.applymap(_format_float) pandas.testing.assert_frame_equal(expected, result)
def test_inf_in_metrics_with_precision_zero(self): cat_dim_df_with_nan = dimx1_str_df.copy() cat_dim_df_with_nan['$wins'] = cat_dim_df_with_nan['$wins'].apply(float) cat_dim_df_with_nan.iloc[2, 1] = np.inf slicer_modified = copy.deepcopy(mock_dataset) slicer_modified.fields.wins.precision = 0 result = Pandas(slicer_modified.fields.wins) \ .transform(cat_dim_df_with_nan, slicer_modified, [slicer_modified.fields.political_party], []) expected = cat_dim_df_with_nan.copy()[[f('wins')]] expected.index = pd.Index(['Democrat', 'Independent', 'Republican'], name='Party') expected['$wins'] = ['6', '0', 'Inf'] expected.columns = ['Wins'] expected.columns.name = 'Metrics' pandas.testing.assert_frame_equal(expected, result)