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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [ken/] [range.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
const size = 16
10
 
11
var a [size]byte
12
var p []byte
13
var m map[int]byte
14
 
15
func f(k int) byte {
16
        return byte(k * 10007 % size)
17
}
18
 
19
func init() {
20
        p = make([]byte, size)
21
        m = make(map[int]byte)
22
        for k := 0; k < size; k++ {
23
                v := f(k)
24
                a[k] = v
25
                p[k] = v
26
                m[k] = v
27
        }
28
}
29
 
30
func main() {
31
        var i int
32
 
33
        /*
34
         * key only
35
         */
36
        i = 0
37
        for k := range a {
38
                v := a[k]
39
                if v != f(k) {
40
                        println("key array range", k, v, a[k])
41
                        panic("fail")
42
                }
43
                i++
44
        }
45
        if i != size {
46
                println("key array size", i)
47
                panic("fail")
48
        }
49
 
50
        i = 0
51
        for k := range p {
52
                v := p[k]
53
                if v != f(k) {
54
                        println("key pointer range", k, v, p[k])
55
                        panic("fail")
56
                }
57
                i++
58
        }
59
        if i != size {
60
                println("key pointer size", i)
61
                panic("fail")
62
        }
63
 
64
        i = 0
65
        for k := range m {
66
                v := m[k]
67
                if v != f(k) {
68
                        println("key map range", k, v, m[k])
69
                        panic("fail")
70
                }
71
                i++
72
        }
73
        if i != size {
74
                println("key map size", i)
75
                panic("fail")
76
        }
77
 
78
        /*
79
         * key,value
80
         */
81
        i = 0
82
        for k, v := range a {
83
                if v != f(k) {
84
                        println("key:value array range", k, v, a[k])
85
                        panic("fail")
86
                }
87
                i++
88
        }
89
        if i != size {
90
                println("key:value array size", i)
91
                panic("fail")
92
        }
93
 
94
        i = 0
95
        for k, v := range p {
96
                if v != f(k) {
97
                        println("key:value pointer range", k, v, p[k])
98
                        panic("fail")
99
                }
100
                i++
101
        }
102
        if i != size {
103
                println("key:value pointer size", i)
104
                panic("fail")
105
        }
106
 
107
        i = 0
108
        for k, v := range m {
109
                if v != f(k) {
110
                        println("key:value map range", k, v, m[k])
111
                        panic("fail")
112
                }
113
                i++
114
        }
115
        if i != size {
116
                println("key:value map size", i)
117
                panic("fail")
118
        }
119
}

powered by: WebSVN 2.1.0

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