def test_add_metadata_as_int(meta_df): meta_df.metadata(3.2, 'meta_int') idx = pd.MultiIndex(levels=[['a_model'], ['a_scenario', 'a_scenario2']], labels=[[0, 0], [0, 1]], names=['model', 'scenario']) exp = pd.Series(data=[3.2, 3.2], index=idx) exp.name = 'meta_int' obs = meta_df['meta_int'] pd.testing.assert_series_equal(obs, exp)
def test_add_metadata_as_series(meta_df): s = pd.Series([0.3, 0.4]) meta_df.metadata(s, 'meta_series') idx = pd.MultiIndex(levels=[['a_model'], ['a_scenario', 'a_scenario2']], labels=[[0, 0], [0, 1]], names=['model', 'scenario']) exp = pd.Series(data=[0.3, 0.4], index=idx) exp.name = 'meta_series' obs = meta_df['meta_series'] pd.testing.assert_series_equal(obs, exp)
def test_add_metadata_as_named_series(meta_df): idx = pd.MultiIndex(levels=[['a_scenario'], ['a_model'], ['a_region']], labels=[[0], [0], [0]], names=['scenario', 'model', 'region']) s = pd.Series(data=[0.3], index=idx) s.name = 'meta_values' meta_df.metadata(s) idx = pd.MultiIndex(levels=[['a_model'], ['a_scenario', 'a_scenario2']], labels=[[0, 0], [0, 1]], names=['model', 'scenario']) exp = pd.Series(data=[0.3, np.nan], index=idx) exp.name = 'meta_values' obs = meta_df['meta_values'] pd.testing.assert_series_equal(obs, exp)
def test_filter_by_metadata_int(meta_df): meta_df.metadata([1, 2], name='value') obs = meta_df.filter(value=[1, 3]) assert obs['scenario'].unique() == 'a_scenario'
def test_filter_by_metadata_bool(meta_df): meta_df.metadata([True, False], name='exclude') obs = meta_df.filter(exclude=True) assert obs['scenario'].unique() == 'a_scenario'
def test_filter_by_metadata_str(meta_df): meta_df.metadata(['testing', 'testing2'], name='category') obs = meta_df.filter(category='testing') assert obs['scenario'].unique() == 'a_scenario'