// Copyright 2022 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 rand_test import ( . "math/rand/v2" "testing" ) // This test is first, in its own file with an alphabetically early name, // to try to make sure that it runs early. It has the best chance of // detecting deterministic seeding if it's the first test that runs. func TestAuto(t *testing.T) { // Pull out 10 int64s from the global source // and then check that they don't appear in that // order in the deterministic seeded result. var out []int64 for i := 0; i < 10; i++ { out = append(out, Int64()) } // Look for out in seeded output. // Strictly speaking, we should look for them in order, // but this is good enough and not significantly more // likely to have a false positive. r := New(NewPCG(1, 0)) found := 0 for i := 0; i < 1000; i++ { x := r.Int64() if x == out[found] { found++ if found == len(out) { t.Fatalf("found unseeded output in Seed(1) output") } } } }