OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [ken/] [complit.go] - Blame information for rev 700

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.