Source file
test/ken/slicearray.go
1
2
3
4
5
6
7
8
9 package main
10
11 var bx [10]byte
12 var by []byte
13 var fx [10]float64
14 var fy []float64
15 var lb, hb int
16 var t int
17
18 func main() {
19 lb = 0
20 hb = 10
21 by = bx[0:]
22 tstb()
23
24 lb = 0
25 hb = 10
26 fy = fx[0:]
27 tstf()
28
29
30 lb = 0
31 hb = 10
32 by = bx[lb:hb]
33 tstb()
34 by = bx[lb:10]
35 tstb()
36 by = bx[lb:]
37 tstb()
38 by = bx[:hb]
39 tstb()
40 by = bx[0:hb]
41 tstb()
42 by = bx[0:10]
43 tstb()
44 by = bx[0:]
45 tstb()
46 by = bx[:10]
47 tstb()
48 by = bx[:]
49 tstb()
50
51 lb = 2
52 hb = 10
53 by = bx[lb:hb]
54 tstb()
55 by = bx[lb:10]
56 tstb()
57 by = bx[lb:]
58 tstb()
59 by = bx[2:hb]
60 tstb()
61 by = bx[2:10]
62 tstb()
63 by = bx[2:]
64 tstb()
65
66 lb = 0
67 hb = 8
68 by = bx[lb:hb]
69 tstb()
70 by = bx[lb:8]
71 tstb()
72 by = bx[0:hb]
73 tstb()
74 by = bx[0:8]
75 tstb()
76 by = bx[:8]
77 tstb()
78 by = bx[:hb]
79 tstb()
80
81 lb = 2
82 hb = 8
83 by = bx[lb:hb]
84 tstb()
85 by = bx[lb:8]
86 tstb()
87 by = bx[2:hb]
88 tstb()
89 by = bx[2:8]
90 tstb()
91
92
93 lb = 0
94 hb = 10
95 fy = fx[lb:hb]
96 tstf()
97 fy = fx[lb:10]
98 tstf()
99 fy = fx[lb:]
100 tstf()
101 fy = fx[:hb]
102 tstf()
103 fy = fx[0:hb]
104 tstf()
105 fy = fx[0:10]
106 tstf()
107 fy = fx[0:]
108 tstf()
109 fy = fx[:10]
110 tstf()
111 fy = fx[:]
112 tstf()
113
114 lb = 2
115 hb = 10
116 fy = fx[lb:hb]
117 tstf()
118 fy = fx[lb:10]
119 tstf()
120 fy = fx[lb:]
121 tstf()
122 fy = fx[2:hb]
123 tstf()
124 fy = fx[2:10]
125 tstf()
126 fy = fx[2:]
127 tstf()
128
129 lb = 0
130 hb = 8
131 fy = fx[lb:hb]
132 tstf()
133 fy = fx[lb:8]
134 tstf()
135 fy = fx[:hb]
136 tstf()
137 fy = fx[0:hb]
138 tstf()
139 fy = fx[0:8]
140 tstf()
141 fy = fx[:8]
142 tstf()
143
144 lb = 2
145 hb = 8
146 fy = fx[lb:hb]
147 tstf()
148 fy = fx[lb:8]
149 tstf()
150 fy = fx[2:hb]
151 tstf()
152 fy = fx[2:8]
153 tstf()
154 }
155
156 func tstb() {
157 t++
158 if len(by) != hb-lb {
159 println("t=", t, "lb=", lb, "hb=", hb,
160 "len=", len(by), "hb-lb=", hb-lb)
161 panic("fail")
162 }
163 if cap(by) != len(bx)-lb {
164 println("t=", t, "lb=", lb, "hb=", hb,
165 "cap=", cap(by), "len(bx)-lb=", len(bx)-lb)
166 panic("fail")
167 }
168 for i := lb; i < hb; i++ {
169 if bx[i] != by[i-lb] {
170 println("t=", t, "lb=", lb, "hb=", hb,
171 "bx[", i, "]=", bx[i],
172 "by[", i-lb, "]=", by[i-lb])
173 panic("fail")
174 }
175 }
176 by = nil
177 }
178
179 func tstf() {
180 t++
181 if len(fy) != hb-lb {
182 println("t=", t, "lb=", lb, "hb=", hb,
183 "len=", len(fy), "hb-lb=", hb-lb)
184 panic("fail")
185 }
186 if cap(fy) != len(fx)-lb {
187 println("t=", t, "lb=", lb, "hb=", hb,
188 "cap=", cap(fy), "len(fx)-lb=", len(fx)-lb)
189 panic("fail")
190 }
191 for i := lb; i < hb; i++ {
192 if fx[i] != fy[i-lb] {
193 println("t=", t, "lb=", lb, "hb=", hb,
194 "fx[", i, "]=", fx[i],
195 "fy[", i-lb, "]=", fy[i-lb])
196 panic("fail")
197 }
198 }
199 fy = nil
200 }
201
202 func init() {
203 for i := 0; i < len(bx); i++ {
204 bx[i] = byte(i + 20)
205 }
206 by = nil
207
208 for i := 0; i < len(fx); i++ {
209 fx[i] = float64(i + 20)
210 }
211 fy = nil
212 }
213
View as plain text