// $G $D/$F.go && $L $F.$A && ./$A.out // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import "rand" const Count = 1e5 func i64rand() int64 { for { a := int64(rand.Uint32()); a = (a<<32) | int64(rand.Uint32()); a >>= uint(rand.Intn(64)); if -a != a { return a; } } return 0; // impossible } func i64test(a,b,c int64) { d := a%c; if d != b { panicln("i64", a, b, c, d); } } func i64run() { var a, b int64; for i:=0; i>= uint(rand.Intn(64)); return a; } func u64test(a,b,c uint64) { d := a%c; if d != b { panicln("u64", a, b, c, d); } } func u64run() { var a, b uint64; for i:=0; i>= uint(rand.Intn(32)); if -a != a { return a; } } return 0; // impossible } func i32test(a,b,c int32) { d := a%c; if d != b { panicln("i32", a, b, c, d); } } func i32run() { var a, b int32; for i:=0; i>= uint(rand.Intn(32)); return a; } func u32test(a,b,c uint32) { d := a%c; if d != b { panicln("u32", a, b, c, d); } } func u32run() { var a, b uint32; for i:=0; i>= uint(rand.Intn(16)); if -a != a { return a; } } return 0; // impossible } func i16test(a,b,c int16) { d := a%c; if d != b { panicln("i16", a, b, c, d); } } func i16run() { var a, b int16; for i:=0; i>= uint(rand.Intn(16)); return a; } func u16test(a,b,c uint16) { d := a%c; if d != b { panicln("u16", a, b, c, d); } } func u16run() { var a, b uint16; for i:=0; i>= uint(rand.Intn(8)); if -a != a { return a; } } return 0; // impossible } func i8test(a,b,c int8) { d := a%c; if d != b { panicln("i8", a, b, c, d); } } func i8run() { var a, b int8; for i:=0; i>= uint(rand.Intn(8)); return a; } func u8test(a,b,c uint8) { d := a%c; if d != b { panicln("u8", a, b, c, d); } } func u8run() { var a, b uint8; for i:=0; i