/[ascend]/trunk/models/test/defaultmethods.a4c
ViewVC logotype

Diff of /trunk/models/test/defaultmethods.a4c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1290 by johnpye, Mon Feb 26 04:54:45 2007 UTC revision 1291 by johnpye, Mon Feb 26 06:20:43 2007 UTC
# Line 58  MODEL testdefault4 REFINES testdefault3; Line 58  MODEL testdefault4 REFINES testdefault3;
58  METHODS  METHODS
59      METHOD self_test;      METHOD self_test;
60          ASSERT x == 3.0;          ASSERT x == 3.0;
61            ASSERT y == 1.0;
62      END self_test;      END self_test;
63  END testdefault4;  END testdefault4;
64    
# Line 69  METHODS Line 70  METHODS
70      END default;      END default;
71      METHOD self_test;      METHOD self_test;
72          ASSERT x == 4.0;          ASSERT x == 4.0;
73            ASSERT y == 1.0;
74      END self_test;      END self_test;
75  END testdefault5;  END testdefault5;
76    
# Line 78  METHODS Line 80  METHODS
80      METHOD default_self;      METHOD default_self;
81          x := 5.0;          x := 5.0;
82          y := 6.0;          y := 6.0;
83      END default;      END default_self;
84      METHOD self_test;      METHOD self_test;
85          ASSERT x == 5.0;          ASSERT x == 5.0;
86          ASSERT y == 6.0;          ASSERT y == 6.0;
87      END self_test;      END self_test;
88  END testdefault5;  END testdefault6;
89    
90    (* test that 'default_self' goes inside arrays as well *)
91    MODEL testdefault7;
92        x[1..3] IS_A var_default_two;
93        y[1..2] IS_A var_default_one;
94    METHODS
95        METHOD self_test;
96            ASSERT x[1] == 2.0;
97            ASSERT x[2] == 2.0;
98            ASSERT x[3] == 2.0;
99            ASSERT y[1] == 1.0;
100            ASSERT y[2] == 1.0;
101        END self_test;
102    END testdefault7;
103    
104    (* test that 'default_self' goes inside arrays inside parent types *)
105    MODEL testdefault8 REFINES testdefault7;
106    METHODS
107        METHOD self_test;
108            ASSERT x[1] == 2.0;
109            ASSERT x[2] == 2.0;
110            ASSERT x[3] == 2.0;
111            ASSERT y[1] == 1.0;
112            ASSERT y[2] == 1.0;
113        END self_test;
114    END testdefault8;
115    
116    (* test that default_all recurses into submodels *)
117    MODEL ModelA;
118        x IS_A var_default_one;
119        y IS_A var_default_two;
120    END ModelA;
121    
122    MODEL ModelB;
123        z IS_A var_default_one;
124        w IS_A var_default_two;
125    METHODS
126        METHOD default;
127            z := 3.0;
128            w := 4.0;
129        END default;
130    END ModelB;
131    
132    MODEL testdefault9;
133        A IS_A ModelA;
134        B IS_A ModelB;
135    METHODS
136        METHOD self_test;
137            ASSERT A.x == 1.0;
138            ASSERT A.y == 2.0;
139            ASSERT B.z == 3.0;
140            ASSERT B.w == 4.0;
141        END self_test;
142    END testdefault9;
143    
144    (* test that default_all recurses into arrays containing submodels *)
145    MODEL testdefault10;
146        A[1..2] IS_A ModelA;
147        B[1..2] IS_A ModelB;
148    METHODS
149        METHOD self_test;
150            ASSERT A[1].x == 1.0;
151            ASSERT A[1].y == 2.0;
152            ASSERT A[2].x == 1.0;
153            ASSERT A[2].y == 2.0;
154            ASSERT B[1].z == 3.0;
155            ASSERT B[1].w == 4.0;
156            ASSERT B[2].z == 3.0;
157            ASSERT B[2].w == 4.0;
158        END self_test;
159    END testdefault10;
160    
161    (* test that an override of default_all in a submodel gets found *)
162    MODEL ModelC REFINES ModelA;
163    METHODS
164        METHOD default_all;
165            x := 5.0;
166            y := 6.0;
167        END default_all;
168    END ModelC;
169    
170    MODEL testdefault11;
171        A[1..2] IS_A ModelC;
172        B[1..2] IS_A ModelB;
173    METHODS
174        METHOD self_test;
175            ASSERT A[1].x == 5.0;
176            ASSERT A[1].y == 6.0;
177            ASSERT A[2].x == 5.0;
178            ASSERT A[2].y == 6.0;
179            ASSERT B[1].z == 3.0;
180            ASSERT B[1].w == 4.0;
181            ASSERT B[2].z == 3.0;
182            ASSERT B[2].w == 4.0;
183        END self_test;
184    END testdefault11;

Legend:
Removed from v.1290  
changed lines
  Added in v.1291

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22