You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: xASL_ut_function_xASL_spm_smooth.m
    path of file: ./repos/ExploreASL/Testing/UnitTests
    
    the code of the file until where you have to start completion: function UnitTest = xASL_ut_function_xASL_spm_smooth(TestRepository)
%xASL_ut_function_xASL_spm_smooth Individual unit test for xASL_spm_smooth
%
% INPUT:        TestRepository - Path to test repository.
%
% OUTPUT:       UnitTest  - Test structure
%               name      - Name of tested module or submodule (char array)
%               unit      - Insert one of the following: 'Module', 'Submodule' or 'Function'
%               passed    - Result of all subtests combined (true or false)
%               test      - Structure with individual subtest results
%
% -----------------------------------------------------------------------------------------------------------------------------------------------------
% DESCRIPTION:  Should be run using xASL_ut_UnitTesting.
%
% EXAMPLE:      UnitTests(1) = xASL_ut_function_xASL_spm_smooth(TestRepository);
% -----------------------------------------------------------------------------------------------------------------------------------------------------
% Copyright 2015-2021 ExploreASL


%% Test run 1

% Give your individual subtest a name
UnitTest.tests(1).testname = 'Smooth a T1w image using different kernel sizes';

% Start the test
testTime = tic;

% Set-up test NIfTI
testDirsAndFiles.testSource = fullfile(TestRepository,'UnitTesting','dro_files','test_patient_2_3_0','rawdata','sub-001','anat');
testDirsAndFiles.testDestination = fullfile(TestRepository,'UnitTesting','working_directory','testSubject');
testDirsAndFiles.testFile = fullfile(testDirsAndFiles.testDestination,'test.nii.gz');
testDirsAndFiles.testFileResult1 = fullfile(testDirsAndFiles.testDestination,'result1.nii.gz');
testDirsAndFiles.testFileResult2 = fullfile(testDirsAndFiles.testDestination,'result2.nii.gz');
testDirsAndFiles.testFileResult3 = fullfile(testDirsAndFiles.testDestination,'result3.nii.gz');

% Set up directory and copy NIfTI
xASL_adm_CreateDir(testDirsAndFiles.testDestination);
xASL_Copy(fullfile(testDirsAndFiles.testSource,'sub-001_acq-003_T1w.nii.gz'),testDirsAndFiles.testFile,1);

% Fallback
testCondition = true;

    
function UnitTest = xASL_ut_function_xASL_spm_smooth(TestRepository)
%xASL_ut_function_xASL_spm_smooth Individual unit test for xASL_spm_smooth
%
% INPUT:        TestRepository - Path to test repository.
%
% OUTPUT:       UnitTest  - Test structure
%               name      - Name of tested module or submodule (char array)
%               unit      - Insert one of the following: 'Module', 'Submodule' or 'Function'
%               passed    - Result of all subtests combined (true or false)
%               test      - Structure with individual subtest results
%
% -----------------------------------------------------------------------------------------------------------------------------------------------------
% DESCRIPTION:  Should be run using xASL_ut_UnitTesting.
%
% EXAMPLE:      UnitTests(1) = xASL_ut_function_xASL_spm_smooth(TestRepository);
% -----------------------------------------------------------------------------------------------------------------------------------------------------
% Copyright 2015-2021 ExploreASL


%% Test run 1

% Give your individual subtest a name
UnitTest.tests(1).testname = 'Smooth a T1w image using different kernel sizes';

% Start the test
testTime = tic;

% Set-up test NIfTI
testDirsAndFiles.testSource = fullfile(TestRepository,'UnitTesting','dro_files','test_patient_2_3_0','rawdata','sub-001','anat');
testDirsAndFiles.testDestination = fullfile(TestRepository,'UnitTesting','working_directory','testSubject');
testDirsAndFiles.testFile = fullfile(testDirsAndFiles.testDestination,'test.nii.gz');
testDirsAndFiles.testFileResult1 = fullfile(testDirsAndFiles.testDestination,'result1.nii.gz');
testDirsAndFiles.testFileResult2 = fullfile(testDirsAndFiles.testDestination,'result2.nii.gz');
testDirsAndFiles.testFileResult3 = fullfile(testDirsAndFiles.testDestination,'result3.nii.gz');

% Set up directory and copy NIfTI
xASL_adm_CreateDir(testDirsAndFiles.testDestination);
xASL_Copy(fullfile(testDirsAndFiles.testSource,'sub-001_acq-003_T1w.nii.gz'),testDirsAndFiles.testFile,1);

% Fallback
testCondition = true;

% Test: Smooth
try
    xASL_spm_smooth(testDirsAndFiles.testFile,[4,4,4],testDirsAndFiles.testFileResult1);
    xASL_spm_smooth(testDirsAndFiles.testFile,[8,8,8],testDirsAndFiles.testFileResult2);
    xASL_spm_smooth(testDirsAndFiles.testFile,[16,16,16],testDirsAndFiles.testFileResult3);
catch ME
    warning(ME.identifier, '%s', ME.message);
    testCondition = false;
    diary off;
end