mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
testing/quick: use Uint64 instead of Int63
Followup to CL 39152. Change-Id: I9bfed0c6071ea3d3a43294a6c4a50edc131368cf Reviewed-on: https://go-review.googlesource.com/39313 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
476f55fd8a
commit
a7b51cfb47
2 changed files with 19 additions and 5 deletions
|
|
@ -46,11 +46,7 @@ func randFloat64(rand *rand.Rand) float64 {
|
||||||
|
|
||||||
// randInt64 returns a random int64.
|
// randInt64 returns a random int64.
|
||||||
func randInt64(rand *rand.Rand) int64 {
|
func randInt64(rand *rand.Rand) int64 {
|
||||||
x := rand.Int63() - 1<<62
|
return int64(rand.Uint64())
|
||||||
// x in [-2⁶²,2⁶²), so top two bits are 00 or 11, never 10 or 01.
|
|
||||||
// Mix in some bits from the middle.
|
|
||||||
x ^= x<<29 ^ x<<43
|
|
||||||
return x
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// complexSize is the maximum length of arbitrary values that contain other
|
// complexSize is the maximum length of arbitrary values that contain other
|
||||||
|
|
|
||||||
|
|
@ -307,3 +307,21 @@ func TestNonZeroSliceAndMap(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInt64(t *testing.T) {
|
||||||
|
var lo, hi int64
|
||||||
|
f := func(x int64) bool {
|
||||||
|
if x < lo {
|
||||||
|
lo = x
|
||||||
|
}
|
||||||
|
if x > hi {
|
||||||
|
hi = x
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
cfg := &Config{MaxCount: 100000}
|
||||||
|
Check(f, cfg)
|
||||||
|
if uint64(lo)>>62 == 0 || uint64(hi)>>62 == 0 {
|
||||||
|
t.Errorf("int64 returned range %#016x,%#016x; does not look like full range", lo, hi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue