mk_stim_patterns_test

PURPOSE ^

Verify mk_stim_patterns function

SYNOPSIS ^

function ok= mk_stim_patterns_test

DESCRIPTION ^

 Verify mk_stim_patterns function

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function ok= mk_stim_patterns_test
0002 % Verify mk_stim_patterns function
0003 
0004 % (C) 2005 Andy Adler. License: GPL version 2 or version 3
0005 % $Id: mk_stim_patterns_test.m 2561 2011-05-10 22:58:44Z aadler $
0006 
0007 ok= 1;
0008 
0009 pat= mk_stim_patterns(16,1,'{ad}','{ad}');
0010 ok= ok& test_adj(pat);
0011 
0012 options= {'no_rotate_meas'};
0013 pat= mk_stim_patterns(16,1,'{ad}','{ad}', options);
0014 ok= ok& test_adj(pat);
0015 
0016 options= {'no_rotate_meas', 'no_meas_current'};
0017 pat= mk_stim_patterns(16,1,'{ad}','{ad}', options);
0018 ok= ok& test_adj(pat);
0019 
0020 options= {'no_rotate_meas', 'meas_current'};
0021 pat= mk_stim_patterns(16,1,'{ad}','{ad}', options);
0022 ok= ok& test_adj_full(pat);
0023 
0024 options= {'meas_current'};
0025 pat= mk_stim_patterns(16,1,'{ad}','{ad}', options);
0026 ok= ok& test_adj_full(pat);
0027 
0028 options= {'rotate_meas'};
0029 pat= mk_stim_patterns(16,1,'{ad}','{ad}', options);
0030 ok= ok& test_adj_rotate(pat);
0031 
0032 options= {'rotate_meas', 'no_meas_current'};
0033 pat= mk_stim_patterns(16,1,'{ad}','{ad}', options);
0034 ok= ok& test_adj_rotate(pat);
0035 
0036 options= {'rotate_meas','no_redundant', 'no_meas_current'};
0037 pat= mk_stim_patterns(16,1,'{ad}','{ad}', options);
0038 ok= ok& test_adj_no_redund(pat);
0039 
0040 
0041 function ok= test_adj(pat)
0042    eidors_msg('test adjacent current pattern',2);
0043 
0044    ok=1;
0045    if length(pat) ~= 16
0046       ok=0; eidors_msg('Fail at pt#01',1); return; end
0047 
0048    if ~strcmp( pat(1).stimulation, 'mA');
0049       ok=0; eidors_msg('Fail at pt#02',1); return; end
0050 
0051    % Stim pattern # 1
0052    if pat(1).stim_pattern ~= [-1;1;zeros(14,1)]
0053       ok=0; eidors_msg('Fail at pt#03',1); return; end
0054 
0055    meas= pat(1).meas_pattern;
0056 
0057    if any( size(meas)~= [13 16] )
0058       ok=0; eidors_msg('Fail at pt#04',1); return; end
0059 
0060    if any( meas(1,:)~= [0,0,1,-1,zeros(1,12)] )
0061       ok=0; eidors_msg('Fail at pt#05',1); return; end
0062 
0063    if any( meas(13,:)~= [zeros(1,14),1,-1] )
0064       ok=0; eidors_msg('Fail at pt#06',1); return; end
0065 
0066    % Stim pattern # 10
0067    if any( pat(10).stim_pattern ~= [zeros(9,1);-1;1;zeros(5,1)] )
0068       ok=0; eidors_msg('Fail at pt#07',1); return; end
0069 
0070    meas= pat(10).meas_pattern;
0071 
0072    if any( size(meas)~= [13 16] )
0073       ok=0; eidors_msg('Fail at pt#08',1); return; end
0074 
0075    if any( meas(1,:)~= [1,-1,zeros(1,14)] )
0076       ok=0; eidors_msg('Fail at pt#09',1); return; end
0077 
0078    if any( meas(13,:)~= [-1,zeros(1,14),1] )
0079       ok=0; eidors_msg('Fail at pt#10',1); return; end
0080 
0081 function ok= test_adj_full(pat)
0082    eidors_msg('test adjacent current pattern (full)',2);
0083 
0084    ok=1;
0085    if length(pat) ~= 16
0086       ok=0; eidors_msg('Fail at pt#11',1); return; end
0087 
0088    if ~strcmp( pat(1).stimulation, 'mA');
0089       ok=0; eidors_msg('Fail at pt#12',1); return; end
0090 
0091    % Stim pattern # 1
0092    if pat(1).stim_pattern ~= [-1;1;zeros(14,1)]
0093       ok=0; eidors_msg('Fail at pt#13',1); return; end
0094 
0095    meas= pat(1).meas_pattern;
0096 
0097    if any( size(meas)~= [16 16] )
0098       ok=0; eidors_msg('Fail at pt#14',1); return; end
0099 
0100    if any( meas(1,:)~= [1,-1,zeros(1,14)] )
0101       ok=0; eidors_msg('Fail at pt#15',1); return; end
0102 
0103    if any( meas(13,:)~= [zeros(1,12),1,-1,0,0] )
0104       ok=0; eidors_msg('Fail at pt#16',1); return; end
0105 
0106    % Stim pattern # 10
0107    if any( pat(10).stim_pattern ~= [zeros(9,1);-1;1;zeros(5,1)] )
0108       ok=0; eidors_msg('Fail at pt#17',1); return; end
0109 
0110    meas= pat(10).meas_pattern;
0111 
0112    if any( size(meas)~= [16 16] )
0113       ok=0; eidors_msg('Fail at pt#18',1); return; end
0114 
0115    if any( meas(1,:)~= [1,-1,zeros(1,14)] )
0116       ok=0; eidors_msg('Fail at pt#19',1); return; end
0117 
0118    if any( meas(13,:)~= [zeros(1,12),1,-1,0,0] )
0119       ok=0; eidors_msg('Fail at pt#20',1); return; end
0120 
0121 
0122 function ok= test_adj_rotate(pat)
0123    eidors_msg('test adjacent current pattern (rotate)',2);
0124 
0125    ok=1;
0126    if length(pat) ~= 16
0127       ok=0; eidors_msg('Fail at pt#21',1); return; end
0128 
0129    if ~strcmp( pat(1).stimulation, 'mA');
0130       ok=0; eidors_msg('Fail at pt#22',1); return; end
0131 
0132    % Stim pattern # 1
0133    if pat(1).stim_pattern ~= [-1;1;zeros(14,1)]
0134       ok=0; eidors_msg('Fail at pt#23',1); return; end
0135 
0136    meas= pat(1).meas_pattern;
0137 
0138    if any( size(meas)~= [13 16] )
0139       ok=0; eidors_msg('Fail at pt#24',1); return; end
0140 
0141    if any( meas(1,:)~= [0,0,1,-1,zeros(1,12)] )
0142       ok=0; eidors_msg('Fail at pt#25',1); return; end
0143 
0144    if any( meas(13,:)~= [zeros(1,14),1,-1] )
0145       ok=0; eidors_msg('Fail at pt#26',1); return; end
0146 
0147    % Stim pattern # 10
0148    if any( pat(10).stim_pattern ~= [zeros(9,1);-1;1;zeros(5,1)] )
0149       ok=0; eidors_msg('Fail at pt#27',1); return; end
0150 
0151    meas= pat(10).meas_pattern;
0152 
0153    if any( size(meas)~= [13 16] )
0154       ok=0; eidors_msg('Fail at pt#28',1); return; end
0155 
0156    if any( meas(1,:)~= [zeros(1,11),1,-1,zeros(1,3)] )
0157       ok=0; eidors_msg('Fail at pt#29',1); return; end
0158 
0159    if any( meas(13,:)~= [zeros(1,7),1,-1,zeros(1,7)] )
0160       ok=0; eidors_msg('Fail at pt#30',1); return; end
0161 
0162 function ok= test_adj_no_redund(pat)
0163    eidors_msg('test adjacent current pattern (rotate)',2);
0164 
0165    ok=1;
0166    if length(pat) ~= 14
0167       ok=0; eidors_msg('Fail at pt#31',1); return; end
0168 
0169    if ~strcmp( pat(1).stimulation, 'mA');
0170       ok=0; eidors_msg('Fail at pt#32',1); return; end
0171 
0172    % Stim pattern # 1
0173    if pat(1).stim_pattern ~= [-1;1;zeros(14,1)]
0174       ok=0; eidors_msg('Fail at pt#33',1); return; end
0175 
0176    meas= pat(1).meas_pattern;
0177 
0178    if any( size(meas)~= [13 16] )
0179       ok=0; eidors_msg('Fail at pt#34',1); return; end
0180 
0181    if any( meas(1,:)~= [0,0,1,-1,zeros(1,12)] )
0182       ok=0; eidors_msg('Fail at pt#35',1); return; end
0183 
0184    if any( meas(13,:)~= [zeros(1,14),1,-1] )
0185       ok=0; eidors_msg('Fail at pt#36',1); return; end
0186 
0187    % Stim pattern # 10
0188    if any( pat(10).stim_pattern ~= [zeros(9,1);-1;1;zeros(5,1)] )
0189       ok=0; eidors_msg('Fail at pt#37',1); return; end
0190 
0191    meas= pat(10).meas_pattern;
0192 
0193    if any( size(meas)~= [5 16] )
0194       ok=0; eidors_msg('Fail at pt#38',1); return; end
0195 
0196    if any( meas(1,:)~= [zeros(1,11),1,-1,zeros(1,3)] )
0197       ok=0; eidors_msg('Fail at pt#39',1); return; end
0198 
0199    if any( meas(5,:)~= [-1,zeros(1,14),1] )
0200       ok=0; eidors_msg('Fail at pt#40',1); return; end
0201

Generated on Thu 05-Jul-2012 12:29:27 by m2html © 2005