Build out MATLAB test framework and core integration coverage

This commit is contained in:
Silas Oettinghaus
2026-03-24 17:23:02 +01:00
parent 9446dfb888
commit a592ebefda
154 changed files with 2281 additions and 1305 deletions

View File

@@ -1,11 +1,10 @@
classdef EQ_copy_test < matlab.unittest.TestCase
% Test class for EQ_copy
classdef EQ_copy_test < IMDDTestCase
% Auto-generated placeholder for EQ_copy.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/EQ_copy.m
methods (Test)
function testExample(testCase)
% Example test case for EQ_copy
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for EQ_copy are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef EQ_silas_ofc_test < matlab.unittest.TestCase
% Test class for EQ_silas_ofc
classdef EQ_silas_ofc_test < IMDDTestCase
% Auto-generated placeholder for EQ_silas_ofc.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/EQ_silas_ofc.m
methods (Test)
function testExample(testCase)
% Example test case for EQ_silas_ofc
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for EQ_silas_ofc are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef EQ_silas_plain_test < matlab.unittest.TestCase
% Test class for EQ_silas_plain
classdef EQ_silas_plain_test < IMDDTestCase
% Auto-generated placeholder for EQ_silas_plain.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/EQ_silas_plain.m
methods (Test)
function testExample(testCase)
% Example test case for EQ_silas_plain
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for EQ_silas_plain are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef EQ_silas_sliding_window_dc_removal_test < matlab.unittest.TestCase
% Test class for EQ_silas_sliding_window_dc_removal
classdef EQ_silas_sliding_window_dc_removal_test < IMDDTestCase
% Auto-generated placeholder for EQ_silas_sliding_window_dc_removal.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/EQ_silas_sliding_window_dc_removal.m
methods (Test)
function testExample(testCase)
% Example test case for EQ_silas_sliding_window_dc_removal
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for EQ_silas_sliding_window_dc_removal are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef EQ_silas_test < matlab.unittest.TestCase
% Test class for EQ_silas
classdef EQ_silas_test < IMDDTestCase
% Auto-generated placeholder for EQ_silas.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/EQ_silas.m
methods (Test)
function testExample(testCase)
% Example test case for EQ_silas
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for EQ_silas are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef EQ_test < matlab.unittest.TestCase
% Test class for EQ
classdef EQ_test < IMDDTestCase
% Auto-generated placeholder for EQ.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/EQ.m
methods (Test)
function testExample(testCase)
% Example test case for EQ
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for EQ are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef FFE_DCremoval_adaptive_mu_test < matlab.unittest.TestCase
% Test class for FFE_DCremoval_adaptive_mu
classdef FFE_DCremoval_adaptive_mu_test < IMDDTestCase
% Auto-generated placeholder for FFE_DCremoval_adaptive_mu.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/FFE_DCremoval_adaptive_mu.m
methods (Test)
function testExample(testCase)
% Example test case for FFE_DCremoval_adaptive_mu
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for FFE_DCremoval_adaptive_mu are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef FFE_DCremoval_level_test < matlab.unittest.TestCase
% Test class for FFE_DCremoval_level
classdef FFE_DCremoval_level_test < IMDDTestCase
% Auto-generated placeholder for FFE_DCremoval_level.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/FFE_DCremoval_level.m
methods (Test)
function testExample(testCase)
% Example test case for FFE_DCremoval_level
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for FFE_DCremoval_level are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef FFE_DCremoval_test < matlab.unittest.TestCase
% Test class for FFE_DCremoval
classdef FFE_DCremoval_test < IMDDTestCase
% Auto-generated placeholder for FFE_DCremoval.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/FFE_DCremoval.m
methods (Test)
function testExample(testCase)
% Example test case for FFE_DCremoval
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for FFE_DCremoval are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef FFE_DFE_test < matlab.unittest.TestCase
% Test class for FFE_DFE
classdef FFE_DFE_test < IMDDTestCase
% Auto-generated placeholder for FFE_DFE.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/FFE_DFE.m
methods (Test)
function testExample(testCase)
% Example test case for FFE_DFE
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for FFE_DFE are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef FFE_FFDCAVG_test < matlab.unittest.TestCase
% Test class for FFE_FFDCAVG
classdef FFE_FFDCAVG_test < IMDDTestCase
% Auto-generated placeholder for FFE_FFDCAVG.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/FFE_FFDCAVG.m
methods (Test)
function testExample(testCase)
% Example test case for FFE_FFDCAVG
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for FFE_FFDCAVG are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef FFE_Kalman_Feedback_test < matlab.unittest.TestCase
% Test class for FFE_Kalman_Feedback
classdef FFE_Kalman_Feedback_test < IMDDTestCase
% Auto-generated placeholder for FFE_Kalman_Feedback.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/FFE_Kalman_Feedback.m
methods (Test)
function testExample(testCase)
% Example test case for FFE_Kalman_Feedback
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for FFE_Kalman_Feedback are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef FFE_Kalman_test < matlab.unittest.TestCase
% Test class for FFE_Kalman
classdef FFE_Kalman_test < IMDDTestCase
% Auto-generated placeholder for FFE_Kalman.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/FFE_Kalman.m
methods (Test)
function testExample(testCase)
% Example test case for FFE_Kalman
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for FFE_Kalman are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef FFE_MLSE_test < matlab.unittest.TestCase
% Test class for FFE_MLSE
classdef FFE_MLSE_test < IMDDTestCase
% Auto-generated placeholder for FFE_MLSE.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/FFE_MLSE.m
methods (Test)
function testExample(testCase)
% Example test case for FFE_MLSE
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for FFE_MLSE are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef FFE_adaptive_decision_test < matlab.unittest.TestCase
% Test class for FFE_adaptive_decision
classdef FFE_adaptive_decision_test < IMDDTestCase
% Auto-generated placeholder for FFE_adaptive_decision.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/FFE_adaptive_decision.m
methods (Test)
function testExample(testCase)
% Example test case for FFE_adaptive_decision
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for FFE_adaptive_decision are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,78 @@
classdef FFE_test < matlab.unittest.TestCase
% Test class for FFE
classdef FFE_test < IMDDTestCase
methods (Test, TestTags = {'unit', 'fast', 'dsp', 'ffe'})
function constructorStoresDefaultsAndInitialState(testCase)
ffe = FFE();
methods (Test)
function testExample(testCase)
% Example test case for FFE
% Add your test code here
testCase.verifyTrue(true);
testCase.verifyEqual(ffe.sps, 2);
testCase.verifyEqual(ffe.order, 15);
testCase.verifyEqual(ffe.len_tr, 4096);
testCase.verifyEqual(ffe.mu_tr, 0);
testCase.verifyEqual(ffe.epochs_tr, 5);
testCase.verifyEqual(ffe.adaption_technique, adaption_method.lms);
testCase.verifyEqual(ffe.dd_mode, 1);
testCase.verifyEqual(ffe.mu_dd, 1e-5);
testCase.verifyEqual(ffe.epochs_dd, 5);
testCase.verifyFalse(ffe.decide);
testCase.verifyEqual(ffe.e, zeros(ffe.order, 1));
testCase.verifyEqual(ffe.error, 0);
end
function noUpdateModeKeepsWeightsAtZeroAndPreservesSamplingRate(testCase)
x = makeSignal([-1; 1; -1; 1], 32e9);
d = makeSignal([-1; 1; -1; 1], 8e9);
ffe = FFE( ...
"sps", 1, ...
"order", 1, ...
"len_tr", length(x), ...
"mu_tr", 0, ...
"epochs_tr", 1, ...
"mu_dd", 0, ...
"epochs_dd", 1, ...
"dd_mode", 0, ...
"decide", false, ...
"adaption_technique", adaption_method.lms);
[y, noi] = ffe.process(x, d);
testCase.verifyEqual(ffe.e, 0);
testCase.verifyEqual(ffe.e_tr, 0);
testCase.verifyEqual(y.signal, zeros(size(x.signal)), "AbsTol", 1e-12);
testCase.verifyEqual(y.fs, d.fs);
testCase.verifyEqual(noi.signal, -d.signal, "AbsTol", 1e-12);
testCase.verifyEqual(length(y.signal), length(x.signal));
end
function trainingModeLearnsFromTinySyntheticChannel(testCase)
x = makeSignal([1; -1; 1; -1], 16e9);
d = makeSignal([1; -1; 1; -1], 4e9);
ffe = FFE( ...
"sps", 1, ...
"order", 1, ...
"len_tr", length(x), ...
"mu_tr", 0.5, ...
"epochs_tr", 1, ...
"mu_dd", 0, ...
"epochs_dd", 1, ...
"dd_mode", 0, ...
"decide", false, ...
"adaption_technique", adaption_method.lms);
[y, noi] = ffe.process(x, d);
testCase.verifyEqual(y.fs, d.fs);
testCase.verifyClass(y, 'Informationsignal');
testCase.verifyClass(noi, 'Informationsignal');
testCase.verifyNotEqual(ffe.e, 0);
testCase.verifyNotEqual(ffe.e_tr, 0);
testCase.verifyNotEqual(y.signal, zeros(size(x.signal)));
testCase.verifyEqual(length(y.signal), length(x.signal));
end
end
end
function sig = makeSignal(values, fs)
base = Signal(values);
sig = Informationsignal(values, "fs", fs, "logbook", base.logbook);
end

View File

@@ -1,11 +1,10 @@
classdef ML_MLSE_GPU_test < matlab.unittest.TestCase
% Test class for ML_MLSE_GPU
classdef ML_MLSE_GPU_test < IMDDTestCase
% Auto-generated placeholder for ML_MLSE_GPU.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/ML_MLSE_GPU.m
methods (Test)
function testExample(testCase)
% Example test case for ML_MLSE_GPU
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for ML_MLSE_GPU are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef ML_MLSE_test < matlab.unittest.TestCase
% Test class for ML_MLSE
classdef ML_MLSE_test < IMDDTestCase
% Auto-generated placeholder for ML_MLSE.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/ML_MLSE.m
methods (Test)
function testExample(testCase)
% Example test case for ML_MLSE
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for ML_MLSE are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef Postfilter_test < matlab.unittest.TestCase
% Test class for Postfilter
classdef Postfilter_test < IMDDTestCase
% Auto-generated placeholder for Postfilter.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/Postfilter.m
methods (Test)
function testExample(testCase)
% Example test case for Postfilter
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for Postfilter are not implemented yet.");
end
end
end

View File

@@ -1,11 +1,10 @@
classdef VNLE_test < matlab.unittest.TestCase
% Test class for VNLE
classdef VNLE_test < IMDDTestCase
% Auto-generated placeholder for VNLE.
% Target: C:/Users/Silas/Documents/MATLAB/imdd_simulation/Classes/04_DSP/Equalizer/VNLE.m
methods (Test)
function testExample(testCase)
% Example test case for VNLE
% Add your test code here
testCase.verifyTrue(true);
methods (Test, TestTags = {'placeholder', 'todo'})
function testNotImplemented(testCase)
testCase.assumeFail("Tests for VNLE are not implemented yet.");
end
end
end