Source file
test/ken/complit.go
1
2
3
4
5
6
7
8
9 package main
10
11 type M map[int]int
12 type S struct{ a,b,c int };
13 type SS struct{ aa,bb,cc S };
14 type SA struct{ a,b,c [3]int };
15 type SC struct{ a,b,c []int };
16 type SM struct{ a,b,c M };
17
18 func
19 main() {
20 test("s.a", s.a);
21 test("s.b", s.b);
22 test("s.c", s.c);
23
24 test("ss.aa.a", ss.aa.a);
25 test("ss.aa.b", ss.aa.b);
26 test("ss.aa.c", ss.aa.c);
27
28 test("ss.bb.a", ss.bb.a);
29 test("ss.bb.b", ss.bb.b);
30 test("ss.bb.c", ss.bb.c);
31
32 test("ss.cc.a", ss.cc.a);
33 test("ss.cc.b", ss.cc.b);
34 test("ss.cc.c", ss.cc.c);
35
36 for i:=0; i<3; i++ {
37 test("a[i]", a[i]);
38 test("c[i]", c[i]);
39 test("m[i]", m[i]);
40
41 test("as[i].a", as[i].a);
42 test("as[i].b", as[i].b);
43 test("as[i].c", as[i].c);
44
45 test("cs[i].a", cs[i].a);
46 test("cs[i].b", cs[i].b);
47 test("cs[i].c", cs[i].c);
48
49 test("ms[i].a", ms[i].a);
50 test("ms[i].b", ms[i].b);
51 test("ms[i].c", ms[i].c);
52
53 test("sa.a[i]", sa.a[i]);
54 test("sa.b[i]", sa.b[i]);
55 test("sa.c[i]", sa.c[i]);
56
57 test("sc.a[i]", sc.a[i]);
58 test("sc.b[i]", sc.b[i]);
59 test("sc.c[i]", sc.c[i]);
60
61 test("sm.a[i]", sm.a[i]);
62 test("sm.b[i]", sm.b[i]);
63 test("sm.c[i]", sm.c[i]);
64
65 for j:=0; j<3; j++ {
66 test("aa[i][j]", aa[i][j]);
67 test("ac[i][j]", ac[i][j]);
68 test("am[i][j]", am[i][j]);
69 test("ca[i][j]", ca[i][j]);
70 test("cc[i][j]", cc[i][j]);
71 test("cm[i][j]", cm[i][j]);
72 test("ma[i][j]", ma[i][j]);
73 test("mc[i][j]", mc[i][j]);
74 test("mm[i][j]", mm[i][j]);
75 }
76 }
77
78 }
79
80 var ref = 0;
81
82 func
83 test(xs string, x int) {
84
85 if ref >= len(answers) {
86 println(xs, x);
87 return;
88 }
89
90 if x != answers[ref] {
91 println(xs, "is", x, "should be", answers[ref])
92 }
93 ref++;
94 }
95
96
97 var a = [3]int{1001, 1002, 1003}
98 var s = S{1101, 1102, 1103}
99 var c = []int{1201, 1202, 1203}
100 var m = M{0:1301, 1:1302, 2:1303}
101
102 var aa = [3][3]int{[3]int{2001,2002,2003}, [3]int{2004,2005,2006}, [3]int{2007,2008,2009}}
103 var as = [3]S{S{2101,2102,2103},S{2104,2105,2106},S{2107,2108,2109}}
104 var ac = [3][]int{[]int{2201,2202,2203}, []int{2204,2205,2206}, []int{2207,2208,2209}}
105 var am = [3]M{M{0:2301,1:2302,2:2303}, M{0:2304,1:2305,2:2306}, M{0:2307,1:2308,2:2309}}
106
107 var sa = SA{[3]int{3001,3002,3003},[3]int{3004,3005,3006},[3]int{3007,3008,3009}}
108 var ss = SS{S{3101,3102,3103},S{3104,3105,3106},S{3107,3108,3109}}
109 var sc = SC{[]int{3201,3202,3203},[]int{3204,3205,3206},[]int{3207,3208,3209}}
110 var sm = SM{M{0:3301,1:3302,2:3303}, M{0:3304,1:3305,2:3306}, M{0:3307,1:3308,2:3309}}
111
112 var ca = [][3]int{[3]int{4001,4002,4003}, [3]int{4004,4005,4006}, [3]int{4007,4008,4009}}
113 var cs = []S{S{4101,4102,4103},S{4104,4105,4106},S{4107,4108,4109}}
114 var cc = [][]int{[]int{4201,4202,4203}, []int{4204,4205,4206}, []int{4207,4208,4209}}
115 var cm = []M{M{0:4301,1:4302,2:4303}, M{0:4304,1:4305,2:4306}, M{0:4307,1:4308,2:4309}}
116
117 var ma = map[int][3]int{0:[3]int{5001,5002,5003}, 1:[3]int{5004,5005,5006}, 2:[3]int{5007,5008,5009}}
118 var ms = map[int]S{0:S{5101,5102,5103},1:S{5104,5105,5106},2:S{5107,5108,5109}}
119 var mc = map[int][]int{0:[]int{5201,5202,5203}, 1:[]int{5204,5205,5206}, 2:[]int{5207,5208,5209}}
120 var mm = map[int]M{0:M{0:5301,1:5302,2:5303}, 1:M{0:5304,1:5305,2:5306}, 2:M{0:5307,1:5308,2:5309}}
121
122 var answers = [...]int {
123
124 1101, 1102, 1103,
125
126
127 3101, 3102, 3103,
128 3104, 3105, 3106,
129 3107, 3108, 3109,
130
131
132 1001, 1201, 1301,
133 2101, 2102, 2103,
134 4101, 4102, 4103,
135 5101, 5102, 5103,
136 3001, 3004, 3007,
137 3201, 3204, 3207,
138 3301, 3304, 3307,
139
140
141 2001, 2201, 2301, 4001, 4201, 4301, 5001, 5201, 5301,
142 2002, 2202, 2302, 4002, 4202, 4302, 5002, 5202, 5302,
143 2003, 2203, 2303, 4003, 4203, 4303, 5003, 5203, 5303,
144
145
146 1002, 1202, 1302,
147 2104, 2105, 2106,
148 4104, 4105, 4106,
149 5104, 5105, 5106,
150 3002, 3005, 3008,
151 3202, 3205, 3208,
152 3302, 3305, 3308,
153
154
155 2004, 2204, 2304, 4004, 4204, 4304, 5004, 5204, 5304,
156 2005, 2205, 2305, 4005, 4205, 4305, 5005, 5205, 5305,
157 2006, 2206, 2306, 4006, 4206, 4306, 5006, 5206, 5306,
158
159
160 1003, 1203, 1303,
161 2107, 2108, 2109,
162 4107, 4108, 4109,
163 5107, 5108, 5109,
164 3003, 3006, 3009,
165 3203, 3206, 3209,
166 3303, 3306, 3309,
167
168
169 2007, 2207, 2307, 4007, 4207, 4307, 5007, 5207, 5307,
170 2008, 2208, 2308, 4008, 4208, 4308, 5008, 5208, 5308,
171 2009, 2209, 2309, 4009, 4209, 4309, 5009, 5209, 5309,
172 }
173
View as plain text