pgregory.net/rand@v1.0.3-0.20230808192358-a0b8ce02f4da/std_regress_test.go (about) 1 // Copyright 2014 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE-go file. 4 5 // Test that random number sequences generated by a specific seed 6 // do not change from version to version. 7 // 8 // Do NOT make changes to the golden outputs. If bugs need to be fixed 9 // in the underlying code, find ways to fix them that do not affect the 10 // outputs. 11 12 package rand_test 13 14 import ( 15 "flag" 16 "fmt" 17 . "pgregory.net/rand" 18 "reflect" 19 "testing" 20 ) 21 22 var ( 23 printgolden = flag.Bool("printgolden", false, "print golden results for regression test") 24 skipregress = flag.Bool("skipregress", false, "skip the regression test") 25 ) 26 27 func TestRegress(t *testing.T) { 28 if *skipregress { 29 t.Skip("-skipregress specified") 30 } 31 32 var int32s = []int32{1, 10, 32, 1 << 20, 1<<20 + 1, 1000000000, 1 << 30, 1<<31 - 2, 1<<31 - 1} 33 var uint32s = []uint32{1, 10, 32, 1 << 20, 1<<20 + 1, 1000000000, 1 << 30, 1<<31 - 2, 1<<31 - 1, 1<<32 - 2, 1<<32 - 1} 34 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} 35 var uint64s = []uint64{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, 1<<64 - 2, 1<<64 - 1} 36 var permSizes = []int{0, 1, 5, 8, 9, 10, 16} 37 var readBufferSizes = []int{0, 1, 7, 8, 9, 10} 38 var shuffleSliceSizes = []int{0, 1, 7, 8, 9, 10, 239} 39 r := New(0) 40 41 rv := reflect.ValueOf(r) 42 n := rv.NumMethod() 43 p := 0 44 if *printgolden { 45 fmt.Printf("var regressGolden = []interface{}{\n") 46 } 47 for i := 0; i < n; i++ { 48 m := rv.Type().Method(i) 49 mv := rv.Method(i) 50 mt := mv.Type() 51 if m.Name == "Get" || m.Name == "Seed" || m.Name == "UnmarshalBinary" { 52 continue 53 } 54 for repeat := 0; repeat < 17; repeat++ { 55 var args []reflect.Value 56 var argstr string 57 if m.Name == "Shuffle" { 58 n := shuffleSliceSizes[repeat%len(shuffleSliceSizes)] 59 x := make([]int, n) 60 args = append(args, reflect.ValueOf(n)) 61 args = append(args, reflect.ValueOf(func(i, j int) { 62 x[i], x[j] = x[j], x[i] 63 })) 64 } else if mt.NumIn() == 1 { 65 var x interface{} 66 switch mt.In(0).Kind() { 67 default: 68 t.Fatalf("unexpected argument type for r.%s", m.Name) 69 70 case reflect.Int: 71 if m.Name == "Perm" { 72 x = permSizes[repeat%len(permSizes)] 73 break 74 } 75 big := int64s[repeat%len(int64s)] 76 if int64(int(big)) != big { 77 r.Int63n(big) // what would happen on 64-bit machine, to keep stream in sync 78 if *printgolden { 79 fmt.Printf("\tskipped, // must run printgolden on 64-bit machine\n") 80 } 81 p++ 82 continue 83 } 84 x = int(big) 85 86 case reflect.Int32: 87 x = int32s[repeat%len(int32s)] 88 89 case reflect.Uint32: 90 x = uint32s[repeat%len(uint32s)] 91 92 case reflect.Int64: 93 x = int64s[repeat%len(int64s)] 94 95 case reflect.Uint64: 96 x = uint64s[repeat%len(uint64s)] 97 98 case reflect.Slice: 99 if m.Name == "Read" { 100 n := readBufferSizes[repeat%len(readBufferSizes)] 101 x = make([]byte, n) 102 } 103 } 104 argstr = fmt.Sprint(x) 105 args = append(args, reflect.ValueOf(x)) 106 } 107 108 ret := mv.Call(args) 109 if m.Name == "Shuffle" { 110 continue // we only run Shuffle for the side effects 111 } 112 out := ret[0].Interface() 113 if m.Name == "Int" || m.Name == "Intn" { 114 out = int64(out.(int)) 115 } 116 if m.Name == "Read" { 117 out = args[0].Interface().([]byte) 118 } 119 if *printgolden { 120 var val string 121 big := int64(1 << 60) 122 if int64(int(big)) != big && (m.Name == "Int" || m.Name == "Intn") { 123 // 32-bit machine cannot print 64-bit results 124 val = "truncated" 125 } else if reflect.TypeOf(out).Kind() == reflect.Slice { 126 val = fmt.Sprintf("%#v", out) 127 } else { 128 val = fmt.Sprintf("%T(%v)", out, out) 129 } 130 fmt.Printf("\t%s, // %s(%s)\n", val, m.Name, argstr) 131 } else { 132 want := regressGolden[p] 133 if m.Name == "Int" { 134 want = int64(int(uint(want.(int64)) << 1 >> 1)) 135 } 136 if !reflect.DeepEqual(out, want) { 137 t.Errorf("r.%s(%s) = %v, want %v", m.Name, argstr, out, want) 138 } 139 } 140 p++ 141 } 142 } 143 if *printgolden { 144 fmt.Printf("}\n") 145 } 146 } 147 148 var regressGolden = []interface{}{ 149 float64(0.22067985252185793), // ExpFloat64() 150 float64(1.9687711464165194), // ExpFloat64() 151 float64(0.09365679875798526), // ExpFloat64() 152 float64(0.14517501157814602), // ExpFloat64() 153 float64(0.49508896017758675), // ExpFloat64() 154 float64(0.19460162662744554), // ExpFloat64() 155 float64(1.772112345348705), // ExpFloat64() 156 float64(0.6731399041877683), // ExpFloat64() 157 float64(0.9608592383348641), // ExpFloat64() 158 float64(1.6377580380236019), // ExpFloat64() 159 float64(0.746790875739628), // ExpFloat64() 160 float64(0.7046262185514), // ExpFloat64() 161 float64(1.2004224748791037), // ExpFloat64() 162 float64(0.2862998393251507), // ExpFloat64() 163 float64(0.06920911706531854), // ExpFloat64() 164 float64(0.8560046295086123), // ExpFloat64() 165 float64(1.022440348964754), // ExpFloat64() 166 float32(0.6771215), // Float32() 167 float32(0.27626145), // Float32() 168 float32(0.8183098), // Float32() 169 float32(0.3243996), // Float32() 170 float32(0.67201096), // Float32() 171 float32(0.4681297), // Float32() 172 float32(0.023567796), // Float32() 173 float32(0.087473094), // Float32() 174 float32(0.0034111738), // Float32() 175 float32(0.65722114), // Float32() 176 float32(0.046393096), // Float32() 177 float32(0.21173078), // Float32() 178 float32(0.47271806), // Float32() 179 float32(0.29274207), // Float32() 180 float32(0.27181208), // Float32() 181 float32(0.6496809), // Float32() 182 float32(0.74196166), // Float32() 183 float64(0.856433858351397), // Float64() 184 float64(0.7891435426818407), // Float64() 185 float64(0.2733668469637417), // Float64() 186 float64(0.09475695109948656), // Float64() 187 float64(0.9273195412198052), // Float64() 188 float64(0.4249010634878422), // Float64() 189 float64(0.434481617284035), // Float64() 190 float64(0.24533397715360217), // Float64() 191 float64(0.22545626444238742), // Float64() 192 float64(0.7962420121491581), // Float64() 193 float64(0.9245530787008205), // Float64() 194 float64(0.8394583155312959), // Float64() 195 float64(0.4300312870817893), // Float64() 196 float64(0.2487366685162612), // Float64() 197 float64(0.4381898278658328), // Float64() 198 float64(0.592397672040487), // Float64() 199 float64(0.14746941299436844), // Float64() 200 int64(5754373348782608125), // Int() 201 int64(7748491296369333668), // Int() 202 int64(572057954588715219), // Int() 203 int64(6655530453728205615), // Int() 204 int64(7746168941076259749), // Int() 205 int64(2065021622730388476), // Int() 206 int64(7739025699315706832), // Int() 207 int64(1416132004977955628), // Int() 208 int64(2672183821718751310), // Int() 209 int64(1467583583146080573), // Int() 210 int64(6526556134661863112), // Int() 211 int64(1498962930278429112), // Int() 212 int64(3564578358808135765), // Int() 213 int64(7493566175953169584), // Int() 214 int64(2164480193314143082), // Int() 215 int64(8892254210449407921), // Int() 216 int64(752890949371391472), // Int() 217 int32(1205287211), // Int31() 218 int32(404925465), // Int31() 219 int32(1867989579), // Int31() 220 int32(151674396), // Int31() 221 int32(1265122101), // Int31() 222 int32(408483400), // Int31() 223 int32(1543085239), // Int31() 224 int32(1850147509), // Int31() 225 int32(2102981969), // Int31() 226 int32(1217480144), // Int31() 227 int32(2146262991), // Int31() 228 int32(689039740), // Int31() 229 int32(44876493), // Int31() 230 int32(1190852950), // Int31() 231 int32(1593076892), // Int31() 232 int32(1948965381), // Int31() 233 int32(1582074401), // Int31() 234 int32(0), // Int31n(1) 235 int32(6), // Int31n(10) 236 int32(29), // Int31n(32) 237 int32(171754), // Int31n(1048576) 238 int32(662959), // Int31n(1048577) 239 int32(902730596), // Int31n(1000000000) 240 int32(174711228), // Int31n(1073741824) 241 int32(1236167451), // Int31n(2147483646) 242 int32(1417043963), // Int31n(2147483647) 243 int32(0), // Int31n(1) 244 int32(8), // Int31n(10) 245 int32(6), // Int31n(32) 246 int32(207436), // Int31n(1048576) 247 int32(651393), // Int31n(1048577) 248 int32(848592667), // Int31n(1000000000) 249 int32(508814525), // Int31n(1073741824) 250 int32(1139808083), // Int31n(2147483646) 251 int64(4913831498199109714), // Int63() 252 int64(9107756857070956389), // Int63() 253 int64(1227799260184772992), // Int63() 254 int64(2150828967340353585), // Int63() 255 int64(960667031188823006), // Int63() 256 int64(5125145001232459059), // Int63() 257 int64(4341096159660331390), // Int63() 258 int64(7892524944240304887), // Int63() 259 int64(9003988926428784094), // Int63() 260 int64(1290403754045170150), // Int63() 261 int64(7648611523255928381), // Int63() 262 int64(6895932085076097687), // Int63() 263 int64(8430236826169566034), // Int63() 264 int64(6560226495627602614), // Int63() 265 int64(1031322271605560397), // Int63() 266 int64(3236959108230395884), // Int63() 267 int64(4967355935137401225), // Int63() 268 int64(0), // Int63n(1) 269 int64(3), // Int63n(10) 270 int64(7), // Int63n(32) 271 int64(1009739), // Int63n(1048576) 272 int64(848369), // Int63n(1048577) 273 int64(606497288), // Int63n(1000000000) 274 int64(187638578), // Int63n(1073741824) 275 int64(1183902487), // Int63n(2147483646) 276 int64(1200900157), // Int63n(2147483647) 277 int64(61991983276636305), // Int63n(1000000000000000000) 278 int64(692963167483433090), // Int63n(1152921504606846976) 279 int64(3912258686940198097), // Int63n(9223372036854775806) 280 int64(1177200405359738371), // Int63n(9223372036854775807) 281 int64(0), // Int63n(1) 282 int64(4), // Int63n(10) 283 int64(29), // Int63n(32) 284 int64(337390), // Int63n(1048576) 285 int64(0), // Intn(1) 286 int64(1), // Intn(10) 287 int64(5), // Intn(32) 288 int64(720876), // Intn(1048576) 289 int64(126152), // Intn(1048577) 290 int64(782208792), // Intn(1000000000) 291 int64(1053629115), // Intn(1073741824) 292 int64(1724409739), // Intn(2147483646) 293 int64(102204766), // Intn(2147483647) 294 int64(350818036186644838), // Intn(1000000000000000000) 295 int64(895031574546959106), // Intn(1152921504606846976) 296 int64(2272837822344028440), // Intn(9223372036854775806) 297 int64(9015800786283557131), // Intn(9223372036854775807) 298 int64(0), // Intn(1) 299 int64(4), // Intn(10) 300 int64(23), // Intn(32) 301 int64(213701), // Intn(1048576) 302 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 303 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 304 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 305 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 306 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 307 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 308 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 309 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 310 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 311 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 312 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 313 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 314 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 315 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 316 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 317 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 318 []byte{0x6c, 0x7e, 0x6c, 0xb7, 0x4f, 0x80, 0x7a, 0xcc, 0x32, 0x5c, 0xcb, 0xa1, 0x53, 0x59, 0xd9, 0xca, 0xe0, 0x2f, 0xce, 0xf0, 0xc9, 0x14, 0xb0, 0xcb, 0x9d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x8a, 0x4c, 0x5e, 0x5, 0xda, 0x2a, 0xf4, 0x0}, // MarshalBinary() 319 float64(-0.8654257554398836), // NormFloat64() 320 float64(-0.21406829968820063), // NormFloat64() 321 float64(-1.259634794338612), // NormFloat64() 322 float64(0.9792767971163675), // NormFloat64() 323 float64(1.079517806578937), // NormFloat64() 324 float64(-1.7279815182679379), // NormFloat64() 325 float64(-0.1091512345583307), // NormFloat64() 326 float64(1.8756598905697905), // NormFloat64() 327 float64(0.1152268468912775), // NormFloat64() 328 float64(0.4380076443898085), // NormFloat64() 329 float64(-0.6122218559579252), // NormFloat64() 330 float64(2.203114764815355), // NormFloat64() 331 float64(-1.007500691429182), // NormFloat64() 332 float64(-0.009209736102766444), // NormFloat64() 333 float64(1.8994576881568932), // NormFloat64() 334 float64(2.077433728093697), // NormFloat64() 335 float64(0.058706583568411005), // NormFloat64() 336 []int{}, // Perm(0) 337 []int{0}, // Perm(1) 338 []int{0, 2, 4, 3, 1}, // Perm(5) 339 []int{7, 5, 6, 0, 4, 3, 2, 1}, // Perm(8) 340 []int{8, 6, 2, 4, 7, 3, 1, 5, 0}, // Perm(9) 341 []int{9, 4, 7, 2, 8, 6, 3, 1, 5, 0}, // Perm(10) 342 []int{6, 8, 4, 2, 9, 10, 5, 3, 15, 1, 12, 7, 13, 0, 14, 11}, // Perm(16) 343 []int{}, // Perm(0) 344 []int{0}, // Perm(1) 345 []int{2, 1, 3, 0, 4}, // Perm(5) 346 []int{6, 1, 3, 7, 0, 2, 5, 4}, // Perm(8) 347 []int{1, 8, 7, 2, 6, 0, 3, 5, 4}, // Perm(9) 348 []int{0, 5, 4, 8, 3, 6, 9, 7, 1, 2}, // Perm(10) 349 []int{13, 2, 10, 6, 3, 7, 5, 8, 9, 4, 11, 14, 12, 1, 15, 0}, // Perm(16) 350 []int{}, // Perm(0) 351 []int{0}, // Perm(1) 352 []int{2, 4, 1, 0, 3}, // Perm(5) 353 []byte{}, // Read([]) 354 []byte{0x94}, // Read([0]) 355 []byte{0xd6, 0xea, 0x86, 0xf4, 0x43, 0x15, 0x49}, // Read([0 0 0 0 0 0 0]) 356 []byte{0xde, 0x73, 0x2f, 0x87, 0x13, 0x33, 0x41, 0x5f}, // Read([0 0 0 0 0 0 0 0]) 357 []byte{0x94, 0xe4, 0x85, 0x89, 0x88, 0x35, 0xb7, 0x46, 0xe8}, // Read([0 0 0 0 0 0 0 0 0]) 358 []byte{0xb5, 0x60, 0xaf, 0x5f, 0xe6, 0x80, 0xe6, 0x3e, 0xdc, 0x38}, // Read([0 0 0 0 0 0 0 0 0 0]) 359 []byte{}, // Read([]) 360 []byte{0x89}, // Read([0]) 361 []byte{0xba, 0xeb, 0xcf, 0xc5, 0xc8, 0x14, 0x3c}, // Read([0 0 0 0 0 0 0]) 362 []byte{0x8c, 0xd9, 0x9f, 0xb3, 0x5c, 0x85, 0x1a, 0x2}, // Read([0 0 0 0 0 0 0 0]) 363 []byte{0x1a, 0x84, 0x2e, 0x8, 0xea, 0x1b, 0x6, 0x82, 0xbe}, // Read([0 0 0 0 0 0 0 0 0]) 364 []byte{0xd9, 0xf4, 0xd9, 0x58, 0x5, 0xca, 0x22, 0x1b, 0x78, 0x8b}, // Read([0 0 0 0 0 0 0 0 0 0]) 365 []byte{}, // Read([]) 366 []byte{0xf1}, // Read([0]) 367 []byte{0x97, 0x5, 0xdb, 0x7f, 0xf2, 0xd7, 0xf3}, // Read([0 0 0 0 0 0 0]) 368 []byte{0x45, 0x2f, 0xf4, 0x1d, 0xb0, 0x29, 0x59, 0x1a}, // Read([0 0 0 0 0 0 0 0]) 369 []byte{0x1b, 0x49, 0xcc, 0x93, 0x4a, 0x93, 0x38, 0x4a, 0x88}, // Read([0 0 0 0 0 0 0 0 0]) 370 uint32(443144931), // Uint32() 371 uint32(2838888050), // Uint32() 372 uint32(540933917), // Uint32() 373 uint32(3532980411), // Uint32() 374 uint32(3879394529), // Uint32() 375 uint32(2263983371), // Uint32() 376 uint32(485587527), // Uint32() 377 uint32(157177437), // Uint32() 378 uint32(1210876971), // Uint32() 379 uint32(1236730850), // Uint32() 380 uint32(1093477689), // Uint32() 381 uint32(3169312281), // Uint32() 382 uint32(3320883706), // Uint32() 383 uint32(2221532646), // Uint32() 384 uint32(3765772079), // Uint32() 385 uint32(1102721479), // Uint32() 386 uint32(443264971), // Uint32() 387 uint32(0), // Uint32n(1) 388 uint32(6), // Uint32n(10) 389 uint32(5), // Uint32n(32) 390 uint32(454419), // Uint32n(1048576) 391 uint32(348174), // Uint32n(1048577) 392 uint32(388944719), // Uint32n(1000000000) 393 uint32(522616556), // Uint32n(1073741824) 394 uint32(1333373448), // Uint32n(2147483646) 395 uint32(1895299264), // Uint32n(2147483647) 396 uint32(2669655105), // Uint32n(4294967294) 397 uint32(2815593974), // Uint32n(4294967295) 398 uint32(0), // Uint32n(1) 399 uint32(4), // Uint32n(10) 400 uint32(24), // Uint32n(32) 401 uint32(542010), // Uint32n(1048576) 402 uint32(907389), // Uint32n(1048577) 403 uint32(549564619), // Uint32n(1000000000) 404 uint64(623435815602436215), // Uint64() 405 uint64(7091866858325530325), // Uint64() 406 uint64(15646221088092807745), // Uint64() 407 uint64(7017598857963742454), // Uint64() 408 uint64(18438963929968280692), // Uint64() 409 uint64(6664292895603936092), // Uint64() 410 uint64(3934775071970460260), // Uint64() 411 uint64(3277824236972575889), // Uint64() 412 uint64(6836477321205388868), // Uint64() 413 uint64(16094187032350467526), // Uint64() 414 uint64(16591668613370222261), // Uint64() 415 uint64(11145758340702467251), // Uint64() 416 uint64(11306661243905047112), // Uint64() 417 uint64(3920891166178067046), // Uint64() 418 uint64(18441123780112909729), // Uint64() 419 uint64(11443767348496673295), // Uint64() 420 uint64(16268865858039102658), // Uint64() 421 uint64(0), // Uint64n(1) 422 uint64(1), // Uint64n(10) 423 uint64(23), // Uint64n(32) 424 uint64(936393), // Uint64n(1048576) 425 uint64(965321), // Uint64n(1048577) 426 uint64(921068474), // Uint64n(1000000000) 427 uint64(551904612), // Uint64n(1073741824) 428 uint64(115775440), // Uint64n(2147483646) 429 uint64(818025944), // Uint64n(2147483647) 430 uint64(15198654419150629), // Uint64n(1000000000000000000) 431 uint64(908755076137728455), // Uint64n(1152921504606846976) 432 uint64(8143090435608784732), // Uint64n(9223372036854775806) 433 uint64(263966714504933425), // Uint64n(9223372036854775807) 434 uint64(10916874489150940206), // Uint64n(18446744073709551614) 435 uint64(14331617103672661280), // Uint64n(18446744073709551615) 436 uint64(0), // Uint64n(1) 437 uint64(6), // Uint64n(10) 438 }