tests = {
    @test_grooteman_01_noise,               ...
    };
%     @test_grooteman_01_noise,                ...
%     @test_grooteman_02_multiple_DP,          ...
%     @test_grooteman_03_10term,               ...
%     @test_grooteman_04_convex,               ...
%     @test_grooteman_05_concave,              ...
%     @test_grooteman_06_saddle_surface,       ...
%     @test_grooteman_07_highly_nonlinear,     ...
%     @test_grooteman_08_highly_nonlinear,     ...
%     @test_grooteman_09_parallel,             ...
%     @test_grooteman_10_series,               ...
%     @test_grooteman_11_parallel2,            ...
%     @test_grooteman_12_series2,              ...
%     @test_grooteman_13_parallel3             ...
%     @test_grooteman_14_series_multiple_DP    ...

names = {
    'test_grooteman_01_noise',              ...
    };

%     'test_grooteman_01_noise',               ...
%     'test_grooteman_02_multiple_DP',         ...
%     'test_grooteman_03_10term',              ...
%     'test_grooteman_04_convex',              ...
%     'test_grooteman_05_concave',             ...
%     'test_grooteman_06_saddle_surface',      ...
%     'test_grooteman_07_highly_nonlinear',    ...
%     'test_grooteman_08_highly_nonlinear',    ...
%     'test_grooteman_09_parallel',            ...
%     'test_grooteman_10_series',              ...
%     'test_grooteman_11_parallel2',           ...
%     'test_grooteman_12_series2',             ...
%     'test_grooteman_13_parallel3'            ...
%     'test_grooteman_14_series_multiple_DP'   ...

N = 100;

clc;
warning off
for i = 1:length(tests)
    mkdir(names{i});
    for j = 1:N
        fprintf('seed #%d\n', j);
        try
            result = feval(tests{i}, 'seed', j);
            cd(names{i});
            fname = ['seed_' num2str(j) '_' names{i}];
            save(fname, 'result');
            cd ..
            clear result;
        catch e
            disp(e.message)
        end
    end
end