blob: aa4d5a6f4b135efd94baf8bd00400fe479736dfb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
// <-- Non-regression test for bug 857 -->
//
// <-- Bugzilla URL -->
// http://www.scilab.org/cgi-bin/bugzilla_bug_II/show_bug.cgi?id=857
//
// <-- Short Description -->
// Imaginary unit i and index loop i in an M-file are both
// converted to %i in Scilab...
//
// for i=1:10
// disp(i)
// end
//
// is converted as follows :
//
// for i=1:10
// disp(%i)
// end
//
// TOO BAD !
// Copyright INRIA
// Scilab Project - V. Couvert
// Modified by Pierre MARECHAL
// Copyright INRIA
// Date : 18 Mar 2005
MFILECONTENTS=["% i and j do not exist as variables -> Imaginary unit";
"a=1+2*i";
"b=1+2*j";
"% Two complex values";
"icplxnumber=1+2i;";
"jcplxnumber=1+2j;";
"chgt_rampe=[];";
"for k=1:10";
" for i=1:10";
" for j=1:10";
" chgt_rampe(k)=2*i-j+1;";
" end;";
" end;";
"end;";
"% Two complex values";
"icplxnumber2=1+3i;";
"jcplxnumber2=1+3j;";
"% Two real values";
"irealnumber=1+4*i;";
"jrealnumber=1+4*j;";
"nbrserie=30";
"for i=1:nbrserie";
" if nbrserie==24";
" switch i";
" case 1";
" disp(i)";
" else";
" disp(''abcd'')";
" end;";
" end;";
"end;"]
MFILE=TMPDIR+"/bug857.m"
SCIFILE=TMPDIR+"/bug857.sci"
mputl(MFILECONTENTS,MFILE);
mfile2sci(MFILE,TMPDIR);
SCIFILECONTENTS=mgetl(SCIFILE);
SCIFILECONTENTSREF=["";
"// Display mode";
"mode(0);";
"";
"// Display warning for floating point exception";
"ieee(1);";
"";
"// i and j do not exist as variables -> Imaginary unit";
"a = 1+2*%i";
"b = 1+2*%i";
"// Two complex values";
"icplxnumber = 1+2*%i;";
"jcplxnumber = 1+2*%i;";
"chgt_rampe = [];";
"for k = 1:10";
" for i = 1:10";
" for j = 1:10";
" chgt_rampe(1,k) = 2*i-j+1;";
" end;";
" end;";
"end;";
"// Two complex values";
"icplxnumber2 = 1+3*%i;";
"jcplxnumber2 = 1+3*%i;";
"// Two real values";
"irealnumber = 1+4*i;";
"jrealnumber = 1+4*j;";
"nbrserie = 30";
"for i = 1:nbrserie";
" if nbrserie==24 then";
" select i";
" case 1 then";
" disp(i)";
" else";
" disp(""abcd"")";
" end;";
" end;";
"end;"]
if or(SCIFILECONTENTSREF<>SCIFILECONTENTS) then
affich_result(%F,857);
else
affich_result(%T,857);
end
|