// Copyright 2014 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.

// Test that random number sequences generated by a specific seed
// do not change from version to version.
//
// If the generator changes, the golden outputs need updating, and
// client programs may break. Although the desire for compatibility
// is not as stringent as in the original math/rand package,
// when possible avoid changing the generator.

package rand_test

import (
	"flag"
	"fmt"
	"reflect"
	"testing"

	. "golang.org/x/exp/rand"
)

var printgolden = flag.Bool("printgolden", false, "print golden results for regression test")

// TestSource verifies that the output of the default Source is locked down.
func TestSourceRegress(t *testing.T) {
	src := NewSource(1)
	var got [20]uint64
	for i := range got {
		got[i] = src.Uint64()
	}
	want := [20]uint64{
		0x34e936394905d167,
		0x817c0ef62fe4c731,
		0x937987e6e24f5a40,
		0x0c0a8307fe226199,
		0xf96363568d8bab56,
		0xbaef3af36bd02620,
		0x8f18e416eb6b936b,
		0x05a43fc149f3a67a,
		0xdab012eb3ce01697,
		0xf76c495a133c6aa9,
		0x304b24c5040ce457,
		0x47d77e0abb413159,
		0x52a810fa9e452f04,
		0x2d24b66380cf4780,
		0x5ec7691b92018ef5,
		0x5076dfa749261ea0,
		0xac8f11ad3941d213,
		0x13fa8d67de91db25,
		0xb50883a9893274eb,
		0xeb8f59263f9109ac,
	}
	if got != want {
		t.Errorf("got:\n\t%#016x\nwant:\n\t%#016x", got, want)
		if *printgolden {
			for _, x := range got {
				fmt.Printf("\t\t%#016x,\n", x)
			}
		}
	}
}

// TestRegress validates that the output stream is locked down, for instance so
// optimizations do not change the output. It iterates over methods of the
// Rand type to find functions to evaluate and checks the first 20 results
// against the golden results.
func TestRegress(t *testing.T) {
	var int32s = []int32{1, 10, 32, 1 << 20, 1<<20 + 1, 1000000000, 1 << 30, 1<<31 - 2, 1<<31 - 1}
	var int64s = []int64{1, 10, 32, 1 << 20, 1<<20 + 1, 1000000000, 1 << 30, 1<<31 - 2, 1<<31 - 1, 1000000000000000000, 1 << 60, 1<<63 - 2, 1<<63 - 1}
	var uint64s = []uint64{1, 10, 32, 1 << 20, 1<<20 + 1, 1000000000, 1 << 30, 1<<31 - 2, 1<<31 - 1, 1000000000000000000, 1 << 60, 1<<64 - 2, 1<<64 - 1}
	var permSizes = []int{0, 1, 5, 8, 9, 10, 16}
	var readBufferSizes = []int{1, 7, 8, 9, 10}
	r := New(NewSource(0))

	rv := reflect.ValueOf(r)
	n := rv.NumMethod()
	p := 0
	if *printgolden {
		fmt.Printf("var regressGolden = []interface{}{\n")
	}
	for i := 0; i < n; i++ {
		m := rv.Type().Method(i)
		mv := rv.Method(i)
		mt := mv.Type()
		if mt.NumOut() == 0 {
			continue
		}
		r.Seed(0)
		if *printgolden && i > 0 {
			fmt.Println()
		}
		for repeat := 0; repeat < 20; repeat++ {
			var args []reflect.Value
			var argstr string
			if mt.NumIn() == 1 {
				var x interface{}
				switch mt.In(0).Kind() {
				default:
					t.Fatalf("unexpected argument type for r.%s", m.Name)

				case reflect.Int:
					if m.Name == "Perm" {
						x = permSizes[repeat%len(permSizes)]
						break
					}
					big := int64s[repeat%len(int64s)]
					if int64(int(big)) != big {
						r.Int63n(big) // what would happen on 64-bit machine, to keep stream in sync
						if *printgolden {
							fmt.Printf("\tskipped, // must run printgolden on 64-bit machine\n")
						}
						p++
						continue
					}
					x = int(big)

				case reflect.Int32:
					x = int32s[repeat%len(int32s)]

				case reflect.Int64:
					x = int64s[repeat%len(int64s)]

				case reflect.Uint64:
					x = uint64s[repeat%len(uint64s)]

				case reflect.Slice:
					if m.Name == "Read" {
						n := readBufferSizes[repeat%len(readBufferSizes)]
						x = make([]byte, n)
					}
				}
				argstr = fmt.Sprint(x)
				args = append(args, reflect.ValueOf(x))
			}

			var out interface{}
			out = mv.Call(args)[0].Interface()
			if m.Name == "Int" || m.Name == "Intn" {
				out = int64(out.(int))
			}
			if m.Name == "Read" {
				out = args[0].Interface().([]byte)
			}
			if *printgolden {
				var val string
				big := int64(1 << 60)
				if int64(int(big)) != big && (m.Name == "Int" || m.Name == "Intn") {
					// 32-bit machine cannot print 64-bit results
					val = "truncated"
				} else if reflect.TypeOf(out).Kind() == reflect.Slice {
					val = fmt.Sprintf("%#v", out)
				} else {
					val = fmt.Sprintf("%T(%v)", out, out)
				}
				fmt.Printf("\t%s, // %s(%s)\n", val, m.Name, argstr)
			} else {
				want := regressGolden[p]
				if m.Name == "Int" {
					want = int64(int(uint(want.(int64)) << 1 >> 1))
				}
				if !reflect.DeepEqual(out, want) {
					t.Errorf("r.%s(%s) = %v, want %v", m.Name, argstr, out, want)
				}
			}
			p++
		}
	}
	if *printgolden {
		fmt.Printf("}\n")
	}
}

var regressGolden = []interface{}{
	float64(0.6279600685109523),   // ExpFloat64()
	float64(0.16198826513357806),  // ExpFloat64()
	float64(0.007880404652650552), // ExpFloat64()
	float64(0.41649788761745654),  // ExpFloat64()
	float64(1.6958707787276301),   // ExpFloat64()
	float64(2.7227327706138036),   // ExpFloat64()
	float64(2.4235600263079657),   // ExpFloat64()
	float64(1.277967771105418),    // ExpFloat64()
	float64(0.7111660437031769),   // ExpFloat64()
	float64(0.23090401427981888),  // ExpFloat64()
	float64(1.4746763588379928),   // ExpFloat64()
	float64(1.4868726779832278),   // ExpFloat64()
	float64(0.1686257242078103),   // ExpFloat64()
	float64(0.2732721816228957),   // ExpFloat64()
	float64(0.4644536065869748),   // ExpFloat64()
	float64(0.01319850986379164),  // ExpFloat64()
	float64(0.7184492551742854),   // ExpFloat64()
	float64(0.1913536422195827),   // ExpFloat64()
	float64(0.16034475958495667),  // ExpFloat64()
	float64(0.40599859014785644),  // ExpFloat64()

	float32(0.7979972),   // Float32()
	float32(0.7725961),   // Float32()
	float32(0.21894403),  // Float32()
	float32(0.96194494),  // Float32()
	float32(0.2915732),   // Float32()
	float32(0.59569645),  // Float32()
	float32(0.99596655),  // Float32()
	float32(0.4979039),   // Float32()
	float32(0.98148686),  // Float32()
	float32(0.01380035),  // Float32()
	float32(0.086487144), // Float32()
	float32(0.6114401),   // Float32()
	float32(0.71081316),  // Float32()
	float32(0.6342346),   // Float32()
	float32(0.008082573), // Float32()
	float32(0.33020085),  // Float32()
	float32(0.032625034), // Float32()
	float32(0.9278005),   // Float32()
	float32(0.34497985),  // Float32()
	float32(0.66506875),  // Float32()

	float64(0.797997151016231),    // Float64()
	float64(0.7725961454373316),   // Float64()
	float64(0.21894402538580782),  // Float64()
	float64(0.9619449481780457),   // Float64()
	float64(0.2915731877602916),   // Float64()
	float64(0.5956964580775652),   // Float64()
	float64(0.9959665347028619),   // Float64()
	float64(0.49790390966591147),  // Float64()
	float64(0.9814868602566785),   // Float64()
	float64(0.013800350332924483), // Float64()
	float64(0.08648714463652596),  // Float64()
	float64(0.6114401479210267),   // Float64()
	float64(0.7108131531183706),   // Float64()
	float64(0.6342346133706837),   // Float64()
	float64(0.008082572853887138), // Float64()
	float64(0.3302008651926287),   // Float64()
	float64(0.03262503454637655),  // Float64()
	float64(0.9278004634858956),   // Float64()
	float64(0.3449798628384906),   // Float64()
	float64(0.665068719316529),    // Float64()

	int64(5474557666971700975), // Int()
	int64(5591422465364813936), // Int()
	int64(74029666500212977),   // Int()
	int64(8088122161323000979), // Int()
	int64(7298457654139700474), // Int()
	int64(1590632625527662686), // Int()
	int64(9052198920789078554), // Int()
	int64(7381380909356947872), // Int()
	int64(1738222704626512495), // Int()
	int64(3278744831230954970), // Int()
	int64(7062423222661652521), // Int()
	int64(6715870808026712034), // Int()
	int64(528819992478005418),  // Int()
	int64(2284534088986354339), // Int()
	int64(945828723091990082),  // Int()
	int64(3813019469742317492), // Int()
	int64(1369388146907482806), // Int()
	int64(7367238674766648970), // Int()
	int64(8217673022687244206), // Int()
	int64(3185531743396549562), // Int()

	int32(1711064216), // Int31()
	int32(650927245),  // Int31()
	int32(8618187),    // Int31()
	int32(941581344),  // Int31()
	int32(1923394120), // Int31()
	int32(1258915833), // Int31()
	int32(1053814650), // Int31()
	int32(859305834),  // Int31()
	int32(1276097579), // Int31()
	int32(1455437958), // Int31()
	int32(1895916096), // Int31()
	int32(781830261),  // Int31()
	int32(61562749),   // Int31()
	int32(265954771),  // Int31()
	int32(1183850779), // Int31()
	int32(443893888),  // Int31()
	int32(1233159585), // Int31()
	int32(857659461),  // Int31()
	int32(956663049),  // Int31()
	int32(370844703),  // Int31()

	int32(0),          // Int31n(1)
	int32(6),          // Int31n(10)
	int32(17),         // Int31n(32)
	int32(1000595),    // Int31n(1048576)
	int32(424333),     // Int31n(1048577)
	int32(382438494),  // Int31n(1000000000)
	int32(902738458),  // Int31n(1073741824)
	int32(1204933878), // Int31n(2147483646)
	int32(1376191263), // Int31n(2147483647)
	int32(0),          // Int31n(1)
	int32(9),          // Int31n(10)
	int32(2),          // Int31n(32)
	int32(440490),     // Int31n(1048576)
	int32(176312),     // Int31n(1048577)
	int32(946765890),  // Int31n(1000000000)
	int32(665034676),  // Int31n(1073741824)
	int32(1947285452), // Int31n(2147483646)
	int32(1702344608), // Int31n(2147483647)
	int32(0),          // Int31n(1)
	int32(2),          // Int31n(10)

	int64(5474557666971700975), // Int63()
	int64(5591422465364813936), // Int63()
	int64(74029666500212977),   // Int63()
	int64(8088122161323000979), // Int63()
	int64(7298457654139700474), // Int63()
	int64(1590632625527662686), // Int63()
	int64(9052198920789078554), // Int63()
	int64(7381380909356947872), // Int63()
	int64(1738222704626512495), // Int63()
	int64(3278744831230954970), // Int63()
	int64(7062423222661652521), // Int63()
	int64(6715870808026712034), // Int63()
	int64(528819992478005418),  // Int63()
	int64(2284534088986354339), // Int63()
	int64(945828723091990082),  // Int63()
	int64(3813019469742317492), // Int63()
	int64(1369388146907482806), // Int63()
	int64(7367238674766648970), // Int63()
	int64(8217673022687244206), // Int63()
	int64(3185531743396549562), // Int63()

	int64(0),                   // Int63n(1)
	int64(6),                   // Int63n(10)
	int64(17),                  // Int63n(32)
	int64(1000595),             // Int63n(1048576)
	int64(424333),              // Int63n(1048577)
	int64(382438494),           // Int63n(1000000000)
	int64(902738458),           // Int63n(1073741824)
	int64(1204933878),          // Int63n(2147483646)
	int64(1376191263),          // Int63n(2147483647)
	int64(502116868085730778),  // Int63n(1000000000000000000)
	int64(144894195020570665),  // Int63n(1152921504606846976)
	int64(6715870808026712034), // Int63n(9223372036854775806)
	int64(528819992478005418),  // Int63n(9223372036854775807)
	int64(0),                   // Int63n(1)
	int64(0),                   // Int63n(10)
	int64(20),                  // Int63n(32)
	int64(854710),              // Int63n(1048576)
	int64(649893),              // Int63n(1048577)
	int64(687244206),           // Int63n(1000000000)
	int64(836883386),           // Int63n(1073741824)

	int64(0),                   // Intn(1)
	int64(6),                   // Intn(10)
	int64(17),                  // Intn(32)
	int64(1000595),             // Intn(1048576)
	int64(424333),              // Intn(1048577)
	int64(382438494),           // Intn(1000000000)
	int64(902738458),           // Intn(1073741824)
	int64(1204933878),          // Intn(2147483646)
	int64(1376191263),          // Intn(2147483647)
	int64(502116868085730778),  // Intn(1000000000000000000)
	int64(144894195020570665),  // Intn(1152921504606846976)
	int64(6715870808026712034), // Intn(9223372036854775806)
	int64(528819992478005418),  // Intn(9223372036854775807)
	int64(0),                   // Intn(1)
	int64(0),                   // Intn(10)
	int64(20),                  // Intn(32)
	int64(854710),              // Intn(1048576)
	int64(649893),              // Intn(1048577)
	int64(687244206),           // Intn(1000000000)
	int64(836883386),           // Intn(1073741824)

	float64(-0.5410658516792047),  // NormFloat64()
	float64(0.615296849055287),    // NormFloat64()
	float64(0.007477442280032887), // NormFloat64()
	float64(1.3443892057169684),   // NormFloat64()
	float64(-0.17508902754863512), // NormFloat64()
	float64(-2.03494397556937),    // NormFloat64()
	float64(2.5213558871972306),   // NormFloat64()
	float64(1.4572921639613627),   // NormFloat64()
	float64(-1.5164961164210644),  // NormFloat64()
	float64(-0.4861150771891445),  // NormFloat64()
	float64(-0.8699409548614199),  // NormFloat64()
	float64(1.6271559815452794),   // NormFloat64()
	float64(0.1659465769926195),   // NormFloat64()
	float64(0.2921716191987018),   // NormFloat64()
	float64(-1.2550269636927838),  // NormFloat64()
	float64(0.11257973349467548),  // NormFloat64()
	float64(0.5437525915836436),   // NormFloat64()
	float64(0.781754430770282),    // NormFloat64()
	float64(0.5201256313962235),   // NormFloat64()
	float64(1.3826174159276245),   // NormFloat64()

	[]int{},                             // Perm(0)
	[]int{0},                            // Perm(1)
	[]int{0, 2, 3, 1, 4},                // Perm(5)
	[]int{5, 6, 3, 7, 4, 2, 0, 1},       // Perm(8)
	[]int{8, 4, 5, 2, 7, 3, 0, 6, 1},    // Perm(9)
	[]int{6, 1, 5, 3, 2, 9, 7, 0, 8, 4}, // Perm(10)
	[]int{12, 5, 1, 9, 15, 7, 13, 6, 10, 11, 8, 0, 4, 2, 14, 3}, // Perm(16)
	[]int{},                             // Perm(0)
	[]int{0},                            // Perm(1)
	[]int{0, 2, 3, 4, 1},                // Perm(5)
	[]int{3, 2, 7, 4, 0, 6, 5, 1},       // Perm(8)
	[]int{0, 6, 2, 1, 3, 7, 5, 8, 4},    // Perm(9)
	[]int{2, 5, 6, 4, 7, 3, 0, 8, 1, 9}, // Perm(10)
	[]int{3, 6, 5, 4, 9, 15, 13, 7, 1, 11, 10, 8, 12, 0, 2, 14}, // Perm(16)
	[]int{},                             // Perm(0)
	[]int{0},                            // Perm(1)
	[]int{2, 4, 3, 1, 0},                // Perm(5)
	[]int{1, 6, 7, 5, 4, 3, 2, 0},       // Perm(8)
	[]int{7, 6, 8, 2, 0, 1, 3, 4, 5},    // Perm(9)
	[]int{2, 9, 7, 1, 5, 4, 0, 6, 8, 3}, // Perm(10)

	[]byte{0xef}, // Read([0])
	[]byte{0x4e, 0x3d, 0x52, 0x31, 0x89, 0xf9, 0xcb},                   // Read([0 0 0 0 0 0 0])
	[]byte{0x70, 0x68, 0x35, 0x8d, 0x1b, 0xb9, 0x98, 0x4d},             // Read([0 0 0 0 0 0 0 0])
	[]byte{0xf1, 0xf8, 0x95, 0xe6, 0x96, 0x1, 0x7, 0x1, 0x93},          // Read([0 0 0 0 0 0 0 0 0])
	[]byte{0x44, 0x9f, 0xc5, 0x40, 0xc8, 0x3e, 0x70, 0xfa, 0x44, 0x3a}, // Read([0 0 0 0 0 0 0 0 0 0])
	[]byte{0x4b}, // Read([0])
	[]byte{0x91, 0x54, 0x49, 0xe5, 0x5e, 0x28, 0xb9},                   // Read([0 0 0 0 0 0 0])
	[]byte{0x4, 0xf2, 0xf, 0x13, 0x96, 0x1a, 0xb2, 0xce},               // Read([0 0 0 0 0 0 0 0])
	[]byte{0x35, 0xf5, 0xde, 0x9f, 0x7d, 0xa0, 0x19, 0x12, 0x2e},       // Read([0 0 0 0 0 0 0 0 0])
	[]byte{0xd4, 0xee, 0x6f, 0x66, 0x6f, 0x32, 0xc8, 0x21, 0x57, 0x68}, // Read([0 0 0 0 0 0 0 0 0 0])
	[]byte{0x1f}, // Read([0])
	[]byte{0x98, 0xda, 0x4d, 0xab, 0x6e, 0xd, 0x71},                   // Read([0 0 0 0 0 0 0])
	[]byte{0x80, 0xad, 0x29, 0xa0, 0x37, 0xb0, 0x80, 0xc4},            // Read([0 0 0 0 0 0 0 0])
	[]byte{0x2, 0xe2, 0xe2, 0x7, 0xd9, 0xed, 0xea, 0x90, 0x33},        // Read([0 0 0 0 0 0 0 0 0])
	[]byte{0x5d, 0xaa, 0xb8, 0xc6, 0x39, 0xfb, 0xbe, 0x56, 0x7, 0xa3}, // Read([0 0 0 0 0 0 0 0 0 0])
	[]byte{0x62}, // Read([0])
	[]byte{0x4d, 0x63, 0xa6, 0x4b, 0xb4, 0x1f, 0x42},                // Read([0 0 0 0 0 0 0])
	[]byte{0x66, 0x42, 0x62, 0x36, 0x42, 0x20, 0x8d, 0xb4},          // Read([0 0 0 0 0 0 0 0])
	[]byte{0x9f, 0xa3, 0x67, 0x1, 0x91, 0xea, 0x34, 0xb6, 0xa},      // Read([0 0 0 0 0 0 0 0 0])
	[]byte{0xd, 0xa8, 0x43, 0xb, 0x1, 0x93, 0x8a, 0x56, 0xfc, 0x98}, // Read([0 0 0 0 0 0 0 0 0 0])

	uint32(3422128433), // Uint32()
	uint32(1301854491), // Uint32()
	uint32(17236374),   // Uint32()
	uint32(1883162688), // Uint32()
	uint32(3846788241), // Uint32()
	uint32(2517831666), // Uint32()
	uint32(2107629301), // Uint32()
	uint32(1718611668), // Uint32()
	uint32(2552195159), // Uint32()
	uint32(2910875917), // Uint32()
	uint32(3791832192), // Uint32()
	uint32(1563660522), // Uint32()
	uint32(123125499),  // Uint32()
	uint32(531909542),  // Uint32()
	uint32(2367701558), // Uint32()
	uint32(887787777),  // Uint32()
	uint32(2466319171), // Uint32()
	uint32(1715318922), // Uint32()
	uint32(1913326099), // Uint32()
	uint32(741689406),  // Uint32()

	uint64(14697929703826476783), // Uint64()
	uint64(5591422465364813936),  // Uint64()
	uint64(74029666500212977),    // Uint64()
	uint64(8088122161323000979),  // Uint64()
	uint64(16521829690994476282), // Uint64()
	uint64(10814004662382438494), // Uint64()
	uint64(9052198920789078554),  // Uint64()
	uint64(7381380909356947872),  // Uint64()
	uint64(10961594741481288303), // Uint64()
	uint64(12502116868085730778), // Uint64()
	uint64(16285795259516428329), // Uint64()
	uint64(6715870808026712034),  // Uint64()
	uint64(528819992478005418),   // Uint64()
	uint64(2284534088986354339),  // Uint64()
	uint64(10169200759946765890), // Uint64()
	uint64(3813019469742317492),  // Uint64()
	uint64(10592760183762258614), // Uint64()
	uint64(7367238674766648970),  // Uint64()
	uint64(8217673022687244206),  // Uint64()
	uint64(3185531743396549562),  // Uint64()

	uint64(0),                   // Uint64n(1)
	uint64(6),                   // Uint64n(10)
	uint64(17),                  // Uint64n(32)
	uint64(1000595),             // Uint64n(1048576)
	uint64(424333),              // Uint64n(1048577)
	uint64(382438494),           // Uint64n(1000000000)
	uint64(902738458),           // Uint64n(1073741824)
	uint64(1204933878),          // Uint64n(2147483646)
	uint64(1376191263),          // Uint64n(2147483647)
	uint64(502116868085730778),  // Uint64n(1000000000000000000)
	uint64(144894195020570665),  // Uint64n(1152921504606846976)
	uint64(6715870808026712034), // Uint64n(18446744073709551614)
	uint64(528819992478005418),  // Uint64n(18446744073709551615)
	uint64(0),                   // Uint64n(1)
	uint64(0),                   // Uint64n(10)
	uint64(20),                  // Uint64n(32)
	uint64(854710),              // Uint64n(1048576)
	uint64(649893),              // Uint64n(1048577)
	uint64(687244206),           // Uint64n(1000000000)
	uint64(836883386),           // Uint64n(1073741824)
}
