From a3d76351f5ac3d74a0246a4950a606465f09457b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3ra=20Kocsis?= <dora@dynare.org> Date: Wed, 25 Mar 2020 17:51:05 +0100 Subject: [PATCH] add unit test and modify template to include example with filtered series, closes #3 --- template.m | 13 ++++++---- tests/run_all_tests_matlab.m | 1 + ...t_fetch_series_with_filter_on_one_series.m | 24 +++++++++++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 tests/test_fetch_series_with_filter_on_one_series.m diff --git a/template.m b/template.m index da5faa3..f3e862a 100644 --- a/template.m +++ b/template.m @@ -23,9 +23,14 @@ df_cart = fetch_series_by_api_link("https://api.db.nomics.world/v22/series?serie df_multi_freq = fetch_series('series_ids', ["BEA/NIUnderlyingDetail-U001BC/S315-A",... "BEA/NIUnderlyingDetail-U001BC/S315-Q",... "BEA/NIUnderlyingDetail-U001BC/S315-M"]); - -%% TO BE IMPLEMENTED -% fetch one series and apply interpolation filter %NOT IMPLEMENTED + +% fetch one series and apply interpolation filter +filters_ = '[{"code": "interpolate", "parameters": {"frequency": "monthly", "method": "spline"}}]'; df_filter = fetch_series('series_ids', "AMECO/ZUTN/EA19.1.0.0.0.ZUTN",... - 'dbnomics_filters', '[{"code": "interpolate", "parameters": {"frequency": "monthly", "method": "spline"}}]'); + 'dbnomics_filters', filters_); +% fetch multiple series and apply interpolation filter +df_filters = fetch_series('series_ids', ["AMECO/ZUTN/EA19.1.0.0.0.ZUTN", "AMECO/ZUTN/DNK.1.0.0.0.ZUTN"],... + 'dbnomics_filters', filters_); + + \ No newline at end of file diff --git a/tests/run_all_tests_matlab.m b/tests/run_all_tests_matlab.m index c163862..3b2dbbc 100644 --- a/tests/run_all_tests_matlab.m +++ b/tests/run_all_tests_matlab.m @@ -11,6 +11,7 @@ r = [r; run_this_test('test_fetch_series_of_dataset')]; r = [r; run_this_test('test_fetch_series_by_api_link')]; r = [r; run_this_test('test_fetch_series_with_na_values')]; r = [r; run_this_test('test_fetch_series_with_max_nb_series')]; +r = [r; run_this_test('test_fetch_series_with_filter_on_one_series')]; print_results(r); diff --git a/tests/test_fetch_series_with_filter_on_one_series.m b/tests/test_fetch_series_with_filter_on_one_series.m new file mode 100644 index 0000000..27dea01 --- /dev/null +++ b/tests/test_fetch_series_with_filter_on_one_series.m @@ -0,0 +1,24 @@ +function test_fetch_series_with_filter_on_one_series() +filters_ = '[{"code": "interpolate", "parameters": {"frequency": "monthly", "method": "spline"}}]'; +df = fetch_series('provider_code', "AMECO", 'dataset_code', "ZUTN", 'series_code', "DEU.1.0.0.0.ZUTN", 'dbnomics_filters', filters_); + +idx = find(strcmp('provider_code',df(1,:))); +provider_codes = unique(df(2:end,idx)); +assert(length(provider_codes)==1); +assert(provider_codes{1} == "AMECO"); + +idx = find(strcmp('dataset_code',df(1,:))); +dataset_codes = unique(df(2:end,idx)); +assert(length(dataset_codes) == 1); +assert(dataset_codes{1} == "ZUTN"); + +idx = find(strcmp('series_code',df(1,:))); +series_codes = unique(df(2:end,idx)); +assert(series_codes{1} == "DEU.1.0.0.0.ZUTN"); + +assert(any(find(strcmp('filtered',df(1,:))))); +idx_freq = find(strcmp('x_frequency',df(1,:))); +frequencies = unique(df(2:end, idx_freq)); +assert(any(strcmp(frequencies, "monthly"))); +assert(any(contains(series_codes, "_filtered"))); +end \ No newline at end of file -- GitLab