Merge remote-tracking branch 'origin/master' into YaSp
[scilab.git] / scilab / modules / fileio / tests / unit_tests / sscanf.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - DIGITEO - Allan CORNET
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- CLI SHELL MODE -->
8 wMode = warning("query");
9 warning("off");
10 n = 50;
11 nstr = strcat(string(1:n),' ');
12 fstr = strcat(strsubst(string(ones(1,n)),'1','%d'), ' ');
13 ierr = execstr("sscanf(1,''%d'')", "errcatch");
14 if ierr <> 999 then bugmes();quit;end
15 [A1, A2, A3, A4, A5, A6, A7, A8] = sscanf(nstr, fstr);
16 ref = 1:8 ;
17 if or([A1, A2, A3, A4, A5, A6, A7, A8] <> ref) then bugmes();quit;end
18 v = 'v';
19 args = strcat( v(ones(n,1)) + string(1:n)',',');
20 ierr = execstr('[' + args + '] = sscanf(nstr, fstr);','errcatch');
21 ref = 1:n ;
22 ierr = execstr('r = or([' + args + '] <> ref)','errcatch');
23 if ierr <> 0 then bugmes();quit;end
24 if r <> %f then bugmes();quit;end
25 n = 500;
26 nstr = strcat(string(1:n),' ');
27 fstr = strcat(strsubst(string(ones(1,n)),'1','%d'), ' ');
28 v = 'v';
29 args = strcat( v(ones(n,1)) + string(1:n)',',');
30 ierr = execstr('[' + args + '] = sscanf(nstr, fstr);','errcatch');
31 if ierr <> 999 then bugmes();quit;end
32 n = 50;
33 nstr = strcat(string(1:n),' ');
34 fstr = strcat(strsubst(string(ones(1,n)),'1','%d'), ' ');
35 mputl(nstr,TMPDIR+'/fscanf.txt');
36 [A1, A2, A3, A4, A5, A6, A7, A8] = fscanf(TMPDIR+'/fscanf.txt',fstr);
37 ref = 1:8 ;
38 if or([A1, A2, A3, A4, A5, A6, A7, A8] <> ref) then bugmes();quit;end
39 v = 'v';
40 args = strcat( v(ones(n,1)) + string(1:n)',',');
41 ierr = execstr('[' + args + '] = fscanf(TMPDIR+''/fscanf.txt'', fstr);','errcatch');
42 ref = 1:n ;
43 ierr = execstr('r = or([' + args + '] <> ref)','errcatch');
44 if ierr <> 0 then bugmes();quit;end
45 if r <> %f then bugmes();quit;end
46 n = 500;
47 nstr = strcat(string(1:n),' ');
48 fstr = strcat(strsubst(string(ones(1,n)),'1','%d'), ' ');
49 v = 'v';
50 args = strcat( v(ones(n,1)) + string(1:n)',',');
51 ierr = execstr('[' + args + '] = fscanf(TMPDIR+''/fscanf.txt'', fstr);','errcatch');
52 if ierr <> 999 then bugmes();quit;end
53 //test format %i %d
54 if sscanf('123','%i')<>123 then bugmes();quit;end
55 if sscanf('     123','%i')<>123 then bugmes();quit;end
56 if sscanf('123','%2i')<>12 then bugmes();quit;end
57 if sscanf('123','%0i')<>123 then bugmes();quit;end
58 if sscanf('123','%5i')<>123 then bugmes();quit;end
59 //test format %u
60 if sscanf('+123','%u')<>123 then bugmes();quit;end
61 if sscanf(' 123','%2u')<>12 then bugmes();quit;end
62 if sscanf('123','%0u')<>123 then bugmes();quit;end
63 if sscanf('+123','%5u')<>123 then bugmes();quit;end
64 //test format %e %f %g
65 if sscanf('123','%e')<>123 then bugmes();quit;end
66 if sscanf('     123','%e')<>123 then bugmes();quit;end
67 if sscanf('123','%2e')<>12 then bugmes();quit;end
68 if sscanf('123','%0e')<>123 then bugmes();quit;end
69 if sscanf('123','%5e')<>123 then bugmes();quit;end
70 //test format %s
71 if sscanf('123','%s')<>'123' then bugmes();quit;end
72 if sscanf('     123','%s')<>'123' then bugmes();quit;end
73 if sscanf('123','%2s')<>'12' then bugmes();quit;end
74 if sscanf('123','%0s')<>'123' then bugmes();quit;end
75 if sscanf('123','%5s')<>'123' then bugmes();quit;end
76 //test format %o
77 if sscanf('123','%o')<>83 then bugmes();quit;end
78 if sscanf('     123','%o')<>83 then bugmes();quit;end
79 if sscanf('123','%2o')<>10 then bugmes();quit;end
80 if sscanf('123','%0o')<>83 then bugmes();quit;end
81 if sscanf('123','%5o')<>83 then bugmes();quit;end
82 //test format %x
83 if sscanf('123','%x')<>291 then bugmes();quit;end
84 if sscanf('     123','%x')<>291 then bugmes();quit;end
85 if sscanf('123','%2x')<>18 then bugmes();quit;end
86 if sscanf('123','%0x')<>291 then bugmes();quit;end
87 if sscanf('123','%5x')<>291 then bugmes();quit;end
88 //test format %c
89 if sscanf('123','%c')<>'1' then bugmes();quit;end
90 if sscanf('     123','%c')<>' ' then bugmes();quit;end
91 if sscanf('123','%0c')<>'1' then bugmes();quit;end
92 //test des format complexes 
93 if sscanf('123 4','%*s%s')<>'4' then bugmes();quit;end
94 if sscanf('123 4','123%e')<>4 then bugmes();quit;end
95 [a,b,c]=sscanf('xxxxx 4 test 23.45','xxxxx%i%s%e')
96  c  =
97  
98     23.45  
99  b  =
100  
101  test   
102  a  =
103  
104     4.  
105 if a<>4|b<>'test'|c<>23.45 then bugmes();quit;end
106 [a,b]=sscanf('123\n456','%e%e')
107  b  =
108  
109     456.  
110  a  =
111  
112     123.  
113 if a<>123|b<>456 then bugmes();quit;end
114 warning(wMode);