def test_check_aggregate_pass(meta_df): # make data complete so that aggregtion-test passes df = pd.DataFrame({'model': 'a_model', 'scenario': 'a_scenario', 'region': 'World', 'variable': 'Primary Energy|Gas', 'unit': 'EJ/y', 'year': [2005, 2010], 'value': [.5, 3]}) meta_df.data = meta_df.data.append(df, ignore_index=True) obs = meta_df.filter(scenario='a_scenario').check_aggregate('Primary Energy') assert obs is None
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'
def test_filter_keep_false(meta_df): df = meta_df.filter(variable='Primary Energy|Coal', year=2005, keep=False) obs = df.data[df.data.scenario == 'a_scenario'].value npt.assert_array_equal(obs, [1, 6, 3])
def test_filter_as_kwarg(meta_df): obs = list(meta_df.filter(variable='Primary Energy|Coal').scenarios()) assert obs == ['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'
def test_filter_meta_index(meta_df): obs = meta_df.filter(scenario='a_scenario2').meta.index exp = pd.MultiIndex(levels=[['a_model'], ['a_scenario2']], labels=[[0], [0]], names=['model', 'scenario']) pd.testing.assert_index_equal(obs, exp)