2c6a84bea95a5ddb631ac2cea3a834ff6f8f8f88
[scilab.git] / scilab / modules / data_structures / tests / unit_tests / struct.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2010 - DIGITEO - Sylvestre LEDRU
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- ENGLISH IMPOSED -->
8 // <-- CLI SHELL MODE -->
9 // unit tests for structs
10 // =============================================================================
11 date_st=struct('jour',25,'mois','DEC','annee',2006);
12 if date_st.jour <> 25 then bugmes();quit;end
13 if date_st.mois <> 'DEC' then bugmes();quit;end
14 if date_st.annee <> 2006 then bugmes();quit;end
15 date_st.jour=19;
16 if date_st.jour <> 19 then bugmes();quit;end
17 date_st.mois='AOU';
18 if date_st.mois <> 'AOU' then bugmes();quit;end
19 date_st.annee=1973;
20 if date_st.annee <> 1973 then bugmes();quit;end
21 date_st.semaine=32;
22 if date_st.semaine <> 32 then bugmes();quit;end
23 // Example from bug #7244
24 clear;
25 foo(1) = 1;
26 foo(2) = 2;
27 foo(3) = 3;
28 foo = foo([1 3]);
29 foo(3) = 2;
30 if [1; 3; 2] <> foo then bugmes();quit;end
31 clear;
32 foo(1) = 1;
33 foo(2) = 2;
34 foo(3) = 3;
35 foo = foo([%T %F %T]);
36 foo(3) = 2;
37 if or([1; 3; 2] <> foo) then bugmes();quit;end
38 clear;
39 foo(1).bar = 1;
40 foo(2).bar = 2;
41 foo(3).bar = 3;
42 foo = foo([1 3]);
43 foo(3).bar = 2;
44 if foo(1).bar <> 1 then bugmes();quit;end
45 if foo(2).bar <> 3 then bugmes();quit;end
46 if foo(3).bar <> 2 then bugmes();quit;end
47 out.a=1;
48 out.b=2;
49 if size(out,'*') <> 1 then bugmes();quit;end
50 out(2,3).b=2;
51 if or(size(out) <> [2 3]) then bugmes();quit;end
52 s=struct("txt","Hello","num",%pi,"pol",%z^2+1);
53 if s.pol <> %z^2+1 then bugmes();quit;end
54 if s.txt <> "Hello" then bugmes();quit;end
55 s.txt=null();s.num=null();s.pol=null();
56 if isfield( s , "txt"  ) then bugmes();quit;end
57 if isfield( s , "num"  ) then bugmes();quit;end
58 if isfield( s , "pol"  ) then bugmes();quit;end
59 if or(isfield( s , ["pol", "num", "txt"]  )) then bugmes();quit;end
60 if or(size(s) <> [1 1]) then bugmes();quit;end
61 z.y = 42;
62 y.o = z;
63 y.d.e = z;
64 y.f.r.h = z;
65 y.i.j.k.l = z;
66 z.m = y;
67 z.m.o.y = z;
68 if z.m.o.y.m.i.j.k.l.y <> 42 then bugmes();quit;end
69 if ~isfield(z.m.o.y.m.i.j.k.l,"y") then bugmes();quit;end
70 z.z = 21;
71 z.b = z;
72 z.b.c = z;
73 if z.z <> 21 then bugmes();quit;end
74 if z.b.c.z <> 21 then bugmes();quit;end
75 if ~isfield(z,"b") then bugmes();quit;end
76 if ~isfield(z.b,"c") then bugmes();quit;end
77 z(1).x.x = 1;
78 if execstr('z(42).x','errcatch')<>999 then bugmes();quit;end