diff --git a/src/mdbnomics2dseries/mdbnomics2dseries.m b/src/mdbnomics2dseries/mdbnomics2dseries.m
index 1ced8460dabe9d45917f88d6060dacf7d7f833d5..2310b633a19aae4b851ddd2a180d28e648c2c1c2 100644
--- a/src/mdbnomics2dseries/mdbnomics2dseries.m
+++ b/src/mdbnomics2dseries/mdbnomics2dseries.m
@@ -52,3 +52,81 @@ switch nargin
         error('mdbnomics2dseries:WrongInputArguments', 'Too many input arguments! Please check the manual.')
 end
 end
+
+%@test:1
+%$ try
+%$     dseries_src_root = strrep(which('initialize_dseries_class'),'initialize_dseries_class.m','');
+%$     df_id = load([dseries_src_root '../tests/data/mdbnomics/df_id.mat']);
+%$     df = df_id.df;
+%$     ds = mdbnomics2dseries(df);
+%$     t(1) = true;
+%$ catch
+%$     t(1) = false;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dassert(ds.name, {'EA19_1_0_0_0_ZUTN'});
+%$     t(3) = dassert(ds.vobs, 1);
+%$     t(4) = dassert(ds.tags.provider_code, {'AMECO'});
+%$     t(5:10) = isfield(ds.tags, {'freq', 'unit', 'geo', 'Frequency', 'Unit', 'Country'});
+%$ end
+%$
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ try
+%$     dseries_src_root = strrep(which('initialize_dseries_class'),'initialize_dseries_class.m','');
+%$     df_bi = load([dseries_src_root '../tests/data/mdbnomics/df_bi-annual.mat']);
+%$     df = df_bi.df;
+%$     ds = mdbnomics2dseries(df);
+%$     t(1) = true;
+%$ catch
+%$     t(1) = false;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dassert(ds.name, {'S_EUR_AL'});
+%$     t(3) = dassert(ds.vobs, 1);
+%$     t(4) = dassert(ds.dates.freq, 2);
+%$     t(4) = dassert(ds.tags.provider_code, {'Eurostat'});
+%$     t(5:10) = isfield(ds.tags, {'FREQ', 'currency', 'geo', 'Frequency', 'Currency', 'Geopolitical_entity__reporting_'});
+%$ end
+%$
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ try
+%$     dseries_src_root = strrep(which('initialize_dseries_class'),'initialize_dseries_class.m','');
+%$     df_dataset = load([dseries_src_root '../tests/data/mdbnomics/df_dataset.mat']);
+%$     df = df_dataset.df;
+%$     ds = mdbnomics2dseries(df);
+%$     t(1) = true;
+%$ catch
+%$     t(1) = false;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dassert(ds.vobs, 49);
+%$     t(3) = dassert(ds.dates.freq, 1);
+%$     t(4) = dassert(length(unique(ds.tags.provider_code)), 1);
+%$     t(5) = dassert(size(ds.tags.provider_code,1), 49);
+%$ end
+%$
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ try
+%$     dseries_src_root = strrep(which('initialize_dseries_class'),'initialize_dseries_class.m','');
+%$     df_multi = load([dseries_src_root '../tests/data/mdbnomics/df_multi-freq.mat']);
+%$     df = df_multi.df;
+%$     ds = mdbnomics2dseries(df);
+%$     t(1) = false;
+%$ catch
+%$     t(1) = true;
+%$ end
+%$
+%$ T = all(t);
+%@eof:4
diff --git a/src/utilities/convert/convert_mdbnomics.m b/src/utilities/convert/convert_mdbnomics.m
index 71a3180c6a67ce887f448803c334f46f6bfdc454..7e22b22413306ecb681723d91392e45cb161bfc9 100644
--- a/src/utilities/convert/convert_mdbnomics.m
+++ b/src/utilities/convert/convert_mdbnomics.m
@@ -29,13 +29,21 @@ end
 ds = dseries();
 
 % Check for multiple datasets
-dataset_codes = unique(o.data(:,o.col_idx.dataset_code),'stable');
+if isoctave()
+    dataset_codes = unique(o.data(:,o.col_idx.dataset_code));
+else
+    dataset_codes = unique(o.data(:,o.col_idx.dataset_code),'stable');    
+end
 
 % Convert mdbnomics to dseries
 for ii = 1:length(dataset_codes)
     % Slice data for dataset
     ds_dataset = o.data(strcmp(o.data(:,o.col_idx.dataset_code),dataset_codes{ii}),:);
-    series_codes = unique(ds_dataset(:,o.col_idx.series_code),'stable');
+    if isoctave()
+        series_codes = unique(ds_dataset(:,o.col_idx.series_code));
+    else
+        series_codes = unique(ds_dataset(:,o.col_idx.series_code),'stable');
+    end
     % Get list of variable names
     list_of_names = cellfun(@(x)regexprep(x, '[^a-zA-Z0-9]', '_'), series_codes, 'UniformOutput', false);
     % Get dataset values
@@ -70,8 +78,8 @@ for ii = 1:length(dataset_codes)
         data_dataset = reshape(ds_dataset_values, max(series_length), size(series_codes, 1));
 
         % Get dseries date format from dataset
-        starting_date = min(datetime(ds_dataset(:,o.col_idx.period), 'InputFormat', 'yyyy-MM-dd', 'Format', 'yyyy-MM-dd'));
-        original_period = ds_dataset(strcmp(ds_dataset(:,o.col_idx.period),string(starting_date)),o.col_idx.original_period);
+        starting_date = min(datenum(ds_dataset(:,o.col_idx.period)));
+        original_period = ds_dataset(strcmp(ds_dataset(:,o.col_idx.period),datestr(starting_date, 'yyyy-mm-dd')),o.col_idx.original_period);
         dseries_date = get_series_start_date(freq, original_period{1});
         % Transform dataset into dseries
         dataset = dseries(data_dataset, dseries_date, list_of_names);
@@ -82,7 +90,11 @@ end
 
 % Add tags to the variables
 if length(dataset_codes) > 1
-    series_codes = unique(o.data(:,o.col_idx.series_code),'stable');
+    if isoctave()
+        series_codes = unique(o.data(:,o.col_idx.series_code));
+    else
+        series_codes = unique(o.data(:,o.col_idx.series_code),'stable');
+    end
     list_of_names = cellfun(@(x)regexprep(x, '[^a-zA-Z0-9]', '_'), series_codes, 'UniformOutput', false);
     series_length = cell2mat(cellfun(@(x)length(find(strcmp(x, o.data(:,o.col_idx.series_code)))), series_codes, 'UniformOutput', false));
 end
diff --git a/tests/data/mdbnomics/df_bi-annual.mat b/tests/data/mdbnomics/df_bi-annual.mat
new file mode 100644
index 0000000000000000000000000000000000000000..b099f35a73beef802f4b41424df602f11dc2d3cd
Binary files /dev/null and b/tests/data/mdbnomics/df_bi-annual.mat differ
diff --git a/tests/data/mdbnomics/df_dataset.mat b/tests/data/mdbnomics/df_dataset.mat
new file mode 100644
index 0000000000000000000000000000000000000000..c7293af65e5d8f6db478b9bbd671eedc993e211f
Binary files /dev/null and b/tests/data/mdbnomics/df_dataset.mat differ
diff --git a/tests/data/mdbnomics/df_id.mat b/tests/data/mdbnomics/df_id.mat
new file mode 100644
index 0000000000000000000000000000000000000000..0b3e4acaec2ecdc2eb3539bc78437685775cafeb
Binary files /dev/null and b/tests/data/mdbnomics/df_id.mat differ
diff --git a/tests/data/mdbnomics/df_multi-freq.mat b/tests/data/mdbnomics/df_multi-freq.mat
new file mode 100644
index 0000000000000000000000000000000000000000..e4d49cf8425146372b0ad031d2d0f1be0c59ece8
Binary files /dev/null and b/tests/data/mdbnomics/df_multi-freq.mat differ