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