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