def test_set_meta_as_str_by_index(meta_df): idx = pd.MultiIndex(levels=[['a_model'], ['a_scenario']], labels=[[0], [0]], names=['model', 'scenario']) meta_df.set_meta('foo', 'meta_str', idx) obs = meta_df['meta_str'].values npt.assert_array_equal(obs, ['foo', 'uncategorized'])
def test_set_meta_as_str(meta_df): meta_df.set_meta('testing', name='meta_str') idx = pd.MultiIndex(levels=[['a_model'], ['a_scenario', 'a_scenario2']], labels=[[0, 0], [0, 1]], names=['model', 'scenario']) exp = pd.Series(data=['testing', 'testing'], index=idx, name='meta_str') obs = meta_df['meta_str'] pd.testing.assert_series_equal(obs, exp)
def test_set_meta_as_series(meta_df): s = pd.Series([0.3, 0.4]) meta_df.set_meta(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_set_meta_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.set_meta(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_int(meta_df): meta_df.set_meta([1, 2], name='value') obs = meta_df.filter(value=[1, 3]) assert obs['scenario'].unique() == 'a_scenario'
def test_filter_by_bool(meta_df): meta_df.set_meta([True, False], name='exclude') obs = meta_df.filter(exclude=True) assert obs['scenario'].unique() == 'a_scenario'
def test_set_meta_as_str_list(meta_df): meta_df.set_meta(['testing', 'testing2'], name='category') obs = meta_df.filter(category='testing') assert obs['scenario'].unique() == 'a_scenario'