From 76c0cebf5534189bbe1afe6a1a7768ee4881f8c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?D=C3=B3ra=20Kocsis?= <dora@dynare.org>
Date: Fri, 20 Mar 2020 17:27:03 +0100
Subject: [PATCH] add test folder

---
 tests/test_fetch_series_by_api_link.m         | 17 ++++++++++++++
 tests/test_fetch_series_by_code.m             | 18 +++++++++++++++
 tests/test_fetch_series_by_code_mask.m        | 17 ++++++++++++++
 ...by_code_mask_with_plus_in_dimension_code.m | 19 +++++++++++++++
 tests/test_fetch_series_by_dimension.m        | 17 ++++++++++++++
 tests/test_fetch_series_by_id.m               | 18 +++++++++++++++
 ...etch_series_by_ids_in_different_datasets.m | 21 +++++++++++++++++
 ...test_fetch_series_by_ids_in_same_dataset.m | 20 ++++++++++++++++
 tests/test_fetch_series_of_dataset.m          | 17 ++++++++++++++
 tests/test_fetch_series_with_max_nb_series.m  | 17 ++++++++++++++
 tests/test_fetch_series_with_na_values.m      | 23 +++++++++++++++++++
 11 files changed, 204 insertions(+)
 create mode 100644 tests/test_fetch_series_by_api_link.m
 create mode 100644 tests/test_fetch_series_by_code.m
 create mode 100644 tests/test_fetch_series_by_code_mask.m
 create mode 100644 tests/test_fetch_series_by_code_mask_with_plus_in_dimension_code.m
 create mode 100644 tests/test_fetch_series_by_dimension.m
 create mode 100644 tests/test_fetch_series_by_id.m
 create mode 100644 tests/test_fetch_series_by_ids_in_different_datasets.m
 create mode 100644 tests/test_fetch_series_by_ids_in_same_dataset.m
 create mode 100644 tests/test_fetch_series_of_dataset.m
 create mode 100644 tests/test_fetch_series_with_max_nb_series.m
 create mode 100644 tests/test_fetch_series_with_na_values.m

diff --git a/tests/test_fetch_series_by_api_link.m b/tests/test_fetch_series_by_api_link.m
new file mode 100644
index 0000000..45e5825
--- /dev/null
+++ b/tests/test_fetch_series_by_api_link.m
@@ -0,0 +1,17 @@
+function test_fetch_series_by_api_link()
+df = fetch_series_by_api_link("https://api.db.nomics.world/v22/series/BIS/long_pp?limit=1000&offset=0&q=&observations=1&align_periods=1&dimensions=%7B%7D");
+    
+idx = find(strcmp('provider_code',df(1,:)));
+provider_codes = unique(df(2:end,idx));
+assert(length(provider_codes)==1);
+assert(provider_codes{1} == "BIS");
+
+idx = find(strcmp('dataset_code',df(1,:)));
+dataset_codes = unique(df(2:end,idx));
+assert(length(dataset_codes) == 1);
+assert(dataset_codes{1} == "long_pp");
+
+idx = find(strcmp('series_code',df(1,:)));
+series_codes = unique(df(2:end,idx));
+assert(length(series_codes) > 1);
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_by_code.m b/tests/test_fetch_series_by_code.m
new file mode 100644
index 0000000..6386507
--- /dev/null
+++ b/tests/test_fetch_series_by_code.m
@@ -0,0 +1,18 @@
+function test_fetch_series_by_code()
+df = fetch_series('provider_code', "AMECO", 'dataset_code', "ZUTN", 'series_code',"EA19.1.0.0.0.ZUTN");
+
+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(length(series_codes) == 1);
+assert(series_codes{1} == "EA19.1.0.0.0.ZUTN");
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_by_code_mask.m b/tests/test_fetch_series_by_code_mask.m
new file mode 100644
index 0000000..f2e6b89
--- /dev/null
+++ b/tests/test_fetch_series_by_code_mask.m
@@ -0,0 +1,17 @@
+function test_fetch_series_by_code_mask()
+df = fetch_series('provider_code', "IMF", 'dataset_code', "CPI", 'series_code', "M.FR+DE.PCPIEC_IX+PCPIA_IX");
+
+idx = find(strcmp('provider_code',df(1,:)));
+provider_codes = unique(df(2:end,idx));
+assert(length(provider_codes)==1);
+assert(provider_codes{1} == "IMF");
+
+idx = find(strcmp('dataset_code',df(1,:)));
+dataset_codes = unique(df(2:end,idx));
+assert(length(dataset_codes) == 1);
+assert(dataset_codes{1} == "CPI");
+
+idx = find(strcmp('series_code',df(1,:)));
+series_codes = unique(df(2:end,idx));
+assert(length(series_codes) == 4);
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_by_code_mask_with_plus_in_dimension_code.m b/tests/test_fetch_series_by_code_mask_with_plus_in_dimension_code.m
new file mode 100644
index 0000000..757de4f
--- /dev/null
+++ b/tests/test_fetch_series_by_code_mask_with_plus_in_dimension_code.m
@@ -0,0 +1,19 @@
+function test_fetch_series_by_code_mask_with_plus_in_dimension_code()
+df = fetch_series('provider_code', "SCB", 'dataset_code', "AKIAM", 'series_code', '"J+K"+"G+H".AM0301C1');
+
+idx = find(strcmp('provider_code',df(1,:)));
+provider_codes = unique(df(2:end,idx));
+assert(length(provider_codes)==1);
+assert(provider_codes{1} == "SCB");
+
+idx = find(strcmp('dataset_code',df(1,:)));
+dataset_codes = unique(df(2:end,idx));
+assert(length(dataset_codes) == 1);
+assert(dataset_codes{1} == "AKIAM");
+
+idx = find(strcmp('series_code',df(1,:)));
+series_codes = unique(df(2:end,idx));
+check = {'J+K.AM0301C1', 'G+H.AM0301C1'}';  
+logA = cell2mat(cellfun(@(c)strcmp(c,series_codes),check,'UniformOutput',false));
+assert(sum(logA)==2);
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_by_dimension.m b/tests/test_fetch_series_by_dimension.m
new file mode 100644
index 0000000..f30e8a1
--- /dev/null
+++ b/tests/test_fetch_series_by_dimension.m
@@ -0,0 +1,17 @@
+function test_fetch_series_by_dimension()
+df = fetch_series('provider_code',"WB",'dataset_code',"DB", 'dimensions', '{"country":["ES","FR","IT"],"indicator":["IC.REG.COST.PC.FE.ZS.DRFN"]}');
+
+idx = find(strcmp('provider_code',df(1,:)));
+provider_codes = unique(df(2:end,idx));
+assert(length(provider_codes)==1);
+assert(provider_codes{1} == "WB");
+
+idx = find(strcmp('dataset_code',df(1,:)));
+dataset_codes = unique(df(2:end,idx));
+assert(length(dataset_codes) == 1);
+assert(dataset_codes{1} == "DB");
+
+idx = find(strcmp('series_code',df(1,:)));
+series_codes = unique(df(2:end,idx));
+assert(length(series_codes) == 3);
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_by_id.m b/tests/test_fetch_series_by_id.m
new file mode 100644
index 0000000..a24eb70
--- /dev/null
+++ b/tests/test_fetch_series_by_id.m
@@ -0,0 +1,18 @@
+function test_fetch_series_by_id()
+df = fetch_series('series_ids',"AMECO/ZUTN/EA19.1.0.0.0.ZUTN");
+
+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(length(series_codes) == 1);
+assert(series_codes{1} == "EA19.1.0.0.0.ZUTN");
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_by_ids_in_different_datasets.m b/tests/test_fetch_series_by_ids_in_different_datasets.m
new file mode 100644
index 0000000..9bc2103
--- /dev/null
+++ b/tests/test_fetch_series_by_ids_in_different_datasets.m
@@ -0,0 +1,21 @@
+function test_fetch_series_by_ids_in_different_datasets()
+df = fetch_series('series_ids', ["AMECO/ZUTN/EA19.1.0.0.0.ZUTN", "BIS/cbs/Q.S.5A.4B.F.B.A.A.LC1.A.1C"]);
+
+idx = find(strcmp('provider_code',df(1,:)));
+provider_codes = unique(df(2:end,idx));
+assert(length(provider_codes)==2);
+assert(provider_codes{1} == "AMECO");
+assert(provider_codes{2} == "BIS");
+
+idx = find(strcmp('dataset_code',df(1,:)));
+dataset_codes = unique(df(2:end,idx));
+assert(length(dataset_codes) == 2);
+assert(dataset_codes{1} == "ZUTN");
+assert(dataset_codes{2} == "cbs");
+
+idx = find(strcmp('series_code',df(1,:)));
+series_codes = unique(df(2:end,idx));
+assert(length(series_codes) == 2);
+assert(series_codes{1} == "EA19.1.0.0.0.ZUTN");
+assert(series_codes{2} == "Q.S.5A.4B.F.B.A.A.LC1.A.1C");
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_by_ids_in_same_dataset.m b/tests/test_fetch_series_by_ids_in_same_dataset.m
new file mode 100644
index 0000000..7924f0b
--- /dev/null
+++ b/tests/test_fetch_series_by_ids_in_same_dataset.m
@@ -0,0 +1,20 @@
+function test_fetch_series_by_ids_in_same_dataset()
+df = fetch_series('series_ids', ["AMECO/ZUTN/EA19.1.0.0.0.ZUTN",...
+                                 "AMECO/ZUTN/DNK.1.0.0.0.ZUTN"]);
+    
+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(length(series_codes) == 2);
+assert(series_codes{1} == "DNK.1.0.0.0.ZUTN");
+assert(series_codes{2} == "EA19.1.0.0.0.ZUTN");
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_of_dataset.m b/tests/test_fetch_series_of_dataset.m
new file mode 100644
index 0000000..3798526
--- /dev/null
+++ b/tests/test_fetch_series_of_dataset.m
@@ -0,0 +1,17 @@
+function test_fetch_series_of_dataset()
+df = fetch_series('provider_code', "AMECO", 'dataset_code', "ZUTN");
+
+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(length(series_codes) > 1);
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_with_max_nb_series.m b/tests/test_fetch_series_with_max_nb_series.m
new file mode 100644
index 0000000..d09c92d
--- /dev/null
+++ b/tests/test_fetch_series_with_max_nb_series.m
@@ -0,0 +1,17 @@
+function test_fetch_series_with_max_nb_series()
+df = fetch_series('provider_code', "AMECO", 'dataset_code', "ZUTN", 'max_nb_series',20);
+
+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(length(series_codes) <= 20);
+end
\ No newline at end of file
diff --git a/tests/test_fetch_series_with_na_values.m b/tests/test_fetch_series_with_na_values.m
new file mode 100644
index 0000000..7195532
--- /dev/null
+++ b/tests/test_fetch_series_with_na_values.m
@@ -0,0 +1,23 @@
+function test_fetch_series_with_na_values()
+df = fetch_series('provider_code', "AMECO", 'dataset_code', "ZUTN", 'series_code', "DEU.1.0.0.0.ZUTN");
+
+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");
+
+idx = find(strcmp('original_value',df(1,:)));
+assert(any(strcmp('NA', df(2:end,idx))) == true);
+
+idx = find(strcmp('value',df(1,:)));
+assert(any(isnan(cell2mat(df(2:end,idx)))) == true);
+end
\ No newline at end of file
-- 
GitLab