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 0000000000000000000000000000000000000000..45e58257a4528d7920c5a5d5d0ea4f8470f18cda --- /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 0000000000000000000000000000000000000000..63865078980903ca17350f32fbd1755e30419499 --- /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 0000000000000000000000000000000000000000..f2e6b895c56a6933fcc4536635d4be96aaceb9e3 --- /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 0000000000000000000000000000000000000000..757de4f2c2e49b791f48eb27160df167f5485bdf --- /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 0000000000000000000000000000000000000000..f30e8a15e8c119cac93af27c0505cd568ac148c1 --- /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 0000000000000000000000000000000000000000..a24eb700505071e0f0e59d1eded5709b16c45944 --- /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 0000000000000000000000000000000000000000..9bc2103aeea610e1a52277994a2a199953d5e5c0 --- /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 0000000000000000000000000000000000000000..7924f0ba8e34c3f62e5aae5fc58e29856d6e6711 --- /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 0000000000000000000000000000000000000000..379852624bd61d0c7126e3ac4db2b0d51e22f91c --- /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 0000000000000000000000000000000000000000..d09c92de53f74e8e2d4e491bd7be88d69457576a --- /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 0000000000000000000000000000000000000000..7195532028e6ef1d39e8565926af3332ba0fa85e --- /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