/[ascend]/trunk/models/test/blackbox/passarray.a4c
ViewVC logotype

Diff of /trunk/models/test/blackbox/passarray.a4c

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

revision 1036 by johnpye, Thu Jan 4 01:51:38 2007 UTC revision 1037 by johnpye, Thu Jan 4 08:11:55 2007 UTC
# Line 4  REQUIRE "test/blackbox/bbox3.a4c"; Line 4  REQUIRE "test/blackbox/bbox3.a4c";
4  MODEL pass20;  MODEL pass20;
5      ma[1..3] IS_A bbox3;      ma[1..3] IS_A bbox3;
6  METHODS  METHODS
7  METHOD specify;      METHOD on_load;
8      RUN ma[1..3].specify;          RUN reset;
9  END specify;          RUN ma[1..3].default_all;
10        END on_load;
11        METHOD specify;
12            RUN ma[1..3].specify;
13        END specify;
14        METHOD self_test;
15            ASSERT ma[1].y[1] = ma[1].x[1] * ma[1].coef;
16            FOR i IN [1..3] DO
17                RUN ma[i].self_test;
18            END FOR;
19        END self_test;
20  END pass20;  END pass20;
21    
22  (*  dense array of black boxes right syntax*)  (*  dense array of black boxes right syntax*)
23  MODEL pass22;  MODEL pass22;
24      coef IS_A real_constant;      coef IS_A real_constant;
25      coef :== 2.0;      coef :== 2.0;
26          npts IS_A integer_constant;      npts IS_A integer_constant;
27          npts :== 4;      npts :== 4;
28          x[1..npts][1..3] IS_A generic_real;      x[1..npts][1..3] IS_A generic_real;
29          y[1..npts][1..3] IS_A generic_real;      y[1..npts][1..3] IS_A generic_real;
30    
31          (* the simple repeated npts times for different data. *)      (* the simple repeated npts times for different data. *)
32          FOR i IN [1..npts] CREATE      FOR i IN [1..npts] CREATE
33                  bbox[i]: bboxtest( x[i][1..3] : INPUT ;          bbox[i]: bboxtest(
34                                  y[i][1..3] : OUTPUT ;              x[i][1..3] : INPUT ;
35                                  coef : DATA);              y[i][1..3] : OUTPUT ;
36          END FOR;              coef : DATA
37            );
38        END FOR;
39    METHODS
40        METHOD specify;
41            FIX x[1..npts][1];
42            FIX y[1..npts][2];
43            FIX x[1..npts][3];
44        END specify;
45        METHOD values;
46            x[1][1..3] := 1;
47            y[2][1..3] := 2;
48            x[3][1..3] := 3;
49        END values;
50        METHOD on_load;
51            RUN reset;
52            RUN values;
53        END on_load;
54        METHOD self_test;
55            ASSERT y[1][1] = 2;
56            ASSERT x[2][2] = 1;
57            FOR i IN [1..npts] DO
58                FOR j IN [1..3] DO
59                    ASSERT y[i][j] = coef * x[i][j];
60                END FOR;
61            END FOR;
62        END self_test;
63  END pass22;  END pass22;
64    
65  (*  triangular array of black boxes *)  (*  triangular array of black boxes *)
# Line 34  MODEL pass23; Line 69  MODEL pass23;
69      coef IS_A real_constant;      coef IS_A real_constant;
70      coef :== 3;      coef :== 3;
71    
72          (* the odd repeated npts triangle of times.      (* the odd repeated npts triangle of times.
73          Verifies that each instance gets its own argument      Verifies that each instance gets its own argument
74          evaluation in FOR processing.      evaluation in FOR processing.
75           *)          *)
76          FOR i IN [1..npts] CREATE      FOR i IN [1..npts] CREATE
77                  FOR j IN [1..i] CREATE              FOR j IN [1..i] CREATE
78                          xT[i][j] IS_A generic_real;                      xT[i][j] IS_A generic_real;
79                          yT[i][j] IS_A generic_real;                      yT[i][j] IS_A generic_real;
80                  END FOR;              END FOR;
81        END FOR;
82        FOR i IN [1..npts] CREATE
83                bboxT[i]: bboxtest( xT[i][1..i] : INPUT ;
84                                yT[i][1..i] : OUTPUT ;
85                                coef : DATA);
86        END FOR;
87    METHODS
88        METHOD default_self;
89            FOR i IN [1..npts] DO
90                FOR j IN [1..i] DO
91                    xT[i][j] := 1.0;
92                    yT[i][j] := -1.0;
93                END FOR;
94          END FOR;          END FOR;
95          FOR i IN [1..npts] CREATE      END default_self;
96                  bboxT[i]: bboxtest( xT[i][1..i] : INPUT ;      METHOD reset;
97                                  yT[i][1..i] : OUTPUT ;          EXTERNAL asc_free_all_variables(SELF);
98                                  coef : DATA);          RUN specify;
99        END reset;
100        METHOD specify;
101            FOR i IN [1..npts] DO
102                FOR j IN [1..i] DO
103                    FIX xT[i][j];
104                    FREE yT[i][j];
105                END FOR;
106          END FOR;          END FOR;
107  METHODS      END specify;
108        METHOD default_all;
109          METHOD default_self;          RUN default_self;
110                  FOR i IN [1..npts] DO      END default_all;
                         FOR j IN [1..i] DO  
                                 xT[i][j] := 1.0;  
                                 yT[i][j] := -1.0;  
                         END FOR;  
                 END FOR;  
         END default_self;  
         METHOD reset;  
                 EXTERNAL asc_free_all_variables(SELF);  
                 RUN specify;  
         END reset;  
   
         METHOD specify;  
                 FOR i IN [1..npts] DO  
                         FOR j IN [1..i] DO  
                                 FIX xT[i][j];  
                                 FREE yT[i][j];  
                         END FOR;  
                 END FOR;  
         END specify;  
   
         METHOD default_all;  
                 RUN default_self;  
         END default_all;  
   
111  END pass23;  END pass23;

Legend:
Removed from v.1036  
changed lines
  Added in v.1037

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