1 // $G $D/$F.go && $L $F.$A && ./$A.out
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.
13 func i64rand() int64 {
15 a := int64(rand.Uint32())
16 a = (a << 32) | int64(rand.Uint32())
17 a >>= uint(rand.Intn(64))
22 return 0 // impossible
25 func i64test(a, b, c int64) {
28 println("i64", a, b, c, d)
36 for i := 0; i < Count; i++ {
107 i64test(a, b, -16384)
111 func u64rand() uint64 {
112 a := uint64(rand.Uint32())
113 a = (a << 32) | uint64(rand.Uint32())
114 a >>= uint(rand.Intn(64))
118 func u64test(a, b, c uint64) {
121 println("u64", a, b, c, d)
129 for i := 0; i < Count; i++ {
169 func i32rand() int32 {
171 a := int32(rand.Uint32())
172 a >>= uint(rand.Intn(32))
177 return 0 // impossible
180 func i32test(a, b, c int32) {
183 println("i32", a, b, c, d)
191 for i := 0; i < Count; i++ {
264 func u32rand() uint32 {
265 a := uint32(rand.Uint32())
266 a >>= uint(rand.Intn(32))
270 func u32test(a, b, c uint32) {
273 println("u32", a, b, c, d)
281 for i := 0; i < Count; i++ {
321 func i16rand() int16 {
323 a := int16(rand.Uint32())
324 a >>= uint(rand.Intn(16))
329 return 0 // impossible
332 func i16test(a, b, c int16) {
335 println("i16", a, b, c, d)
343 for i := 0; i < Count; i++ {
414 i16test(a, b, -16384)
418 func u16rand() uint16 {
419 a := uint16(rand.Uint32())
420 a >>= uint(rand.Intn(16))
424 func u16test(a, b, c uint16) {
427 println("u16", a, b, c, d)
435 for i := 0; i < Count; i++ {
477 a := int8(rand.Uint32())
478 a >>= uint(rand.Intn(8))
483 return 0 // impossible
486 func i8test(a, b, c int8) {
489 println("i8", a, b, c, d)
497 for i := 0; i < Count; i++ {
566 func u8rand() uint8 {
567 a := uint8(rand.Uint32())
568 a >>= uint(rand.Intn(8))
572 func u8test(a, b, c uint8) {
575 println("u8", a, b, c, d)
583 for i := 0; i < Count; i++ {