@@ -10,148 +10,132 @@ import {
10
10
random ,
11
11
} from "./random" ;
12
12
13
- function initGen ( ) : TFGen {
14
- return TFGen . seed (
15
- 0x00000000 ,
16
- 0x00000000 ,
17
- 0x01234567 ,
18
- 0x89abcdef ,
19
- 0x89abcdef ,
20
- 0x01234567 ,
21
- 0xffffffff ,
22
- 0xffffffff
23
- ) ;
24
- }
13
+ const defaultGen = TFGen . seed (
14
+ 0x00000000 ,
15
+ 0x00000000 ,
16
+ 0x01234567 ,
17
+ 0x89abcdef ,
18
+ 0x89abcdef ,
19
+ 0x01234567 ,
20
+ 0xffffffff ,
21
+ 0xffffffff
22
+ ) ;
25
23
26
24
describe ( "randomInt32" , ( ) => {
27
25
it ( "should generate a random 32-bit signed integer and a next generator" , ( ) => {
28
- const gen = initGen ( ) ;
29
- const [ val , nextGen ] = randomInt32 ( gen ) ;
26
+ const [ val , nextGen ] = randomInt32 ( defaultGen ) ;
30
27
expect ( val ) . toMatchInlineSnapshot ( `78121409` ) ;
31
28
expect ( val ) . toBeGreaterThanOrEqual ( - 0x80000000 ) ;
32
29
expect ( val ) . toBeLessThanOrEqual ( 0x7fffffff ) ;
33
- expect ( nextGen ) . not . toBe ( gen ) ;
30
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
34
31
} ) ;
35
32
} ) ;
36
33
37
34
describe ( "randomInt32R" , ( ) => {
38
35
it ( "should generate a random 32-bit signed integer within a bounds and a next generator" , ( ) => {
39
- const gen = initGen ( ) ;
40
- const [ val , nextGen ] = randomInt32R ( gen , [ - 0x8000 , 0x7fff ] ) ;
36
+ const [ val , nextGen ] = randomInt32R ( defaultGen , [ - 0x8000 , 0x7fff ] ) ;
41
37
expect ( val ) . toMatchInlineSnapshot ( `-30271` ) ;
42
38
expect ( val ) . toBeGreaterThanOrEqual ( - 0x8000 ) ;
43
39
expect ( val ) . toBeLessThanOrEqual ( 0x7fff ) ;
44
- expect ( nextGen ) . not . toBe ( gen ) ;
40
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
45
41
} ) ;
46
42
47
43
it ( "should work if bounds are flipped" , ( ) => {
48
- const gen = initGen ( ) ;
49
- const [ val , nextGen ] = randomInt32R ( gen , [ 0x7fff , - 0x8000 ] ) ;
44
+ const [ val , nextGen ] = randomInt32R ( defaultGen , [ 0x7fff , - 0x8000 ] ) ;
50
45
expect ( val ) . toMatchInlineSnapshot ( `-30271` ) ;
51
46
expect ( val ) . toBeGreaterThanOrEqual ( - 0x8000 ) ;
52
47
expect ( val ) . toBeLessThanOrEqual ( 0x7fff ) ;
53
- expect ( nextGen ) . not . toBe ( gen ) ;
48
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
54
49
} ) ;
55
50
56
51
it ( "should work if bounds are equal" , ( ) => {
57
- const gen = initGen ( ) ;
58
- const [ val , nextGen ] = randomInt32R ( gen , [ 0x7fff , 0x7fff ] ) ;
52
+ const [ val , nextGen ] = randomInt32R ( defaultGen , [ 0x7fff , 0x7fff ] ) ;
59
53
expect ( val ) . toBe ( 0x7fff ) ;
60
- expect ( nextGen ) . toBe ( gen ) ;
54
+ expect ( nextGen ) . toBe ( defaultGen ) ;
61
55
} ) ;
62
56
} ) ;
63
57
64
58
describe ( "randomUint32" , ( ) => {
65
59
it ( "should generate a random 32-bit unsigned integer and a next generator" , ( ) => {
66
- const gen = initGen ( ) ;
67
- const [ val , nextGen ] = randomUint32 ( gen ) ;
60
+ const [ val , nextGen ] = randomUint32 ( defaultGen ) ;
68
61
expect ( val ) . toMatchInlineSnapshot ( `78121409` ) ;
69
62
expect ( val ) . toBeGreaterThanOrEqual ( 0x00000000 ) ;
70
63
expect ( val ) . toBeLessThanOrEqual ( 0xffffffff ) ;
71
- expect ( nextGen ) . not . toBe ( gen ) ;
64
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
72
65
} ) ;
73
66
} ) ;
74
67
75
68
describe ( "randomUint32R" , ( ) => {
76
69
it ( "should generate a random 32-bit unsigned integer within a bounds and a next generator" , ( ) => {
77
- const gen = initGen ( ) ;
78
- const [ val , nextGen ] = randomUint32R ( gen , [ 0xffff0000 , 0xffffffff ] ) ;
70
+ const [ val , nextGen ] = randomUint32R ( defaultGen , [ 0xffff0000 , 0xffffffff ] ) ;
79
71
expect ( val ) . toMatchInlineSnapshot ( `4294904257` ) ;
80
72
expect ( val ) . toBeGreaterThanOrEqual ( 0xffff0000 ) ;
81
73
expect ( val ) . toBeLessThanOrEqual ( 0xffffffff ) ;
82
- expect ( nextGen ) . not . toBe ( gen ) ;
74
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
83
75
} ) ;
84
76
85
77
it ( "should work if bounds are flipped" , ( ) => {
86
- const gen = initGen ( ) ;
87
- const [ val , nextGen ] = randomUint32R ( gen , [ 0xffffffff , 0xffff0000 ] ) ;
78
+ const [ val , nextGen ] = randomUint32R ( defaultGen , [ 0xffffffff , 0xffff0000 ] ) ;
88
79
expect ( val ) . toMatchInlineSnapshot ( `4294904257` ) ;
89
80
expect ( val ) . toBeGreaterThanOrEqual ( 0xffff0000 ) ;
90
81
expect ( val ) . toBeLessThanOrEqual ( 0xffffffff ) ;
91
- expect ( nextGen ) . not . toBe ( gen ) ;
82
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
92
83
} ) ;
93
84
94
85
it ( "should work if bounds are equal" , ( ) => {
95
- const gen = initGen ( ) ;
96
- const [ val , nextGen ] = randomUint32R ( gen , [ 0xffff0000 , 0xffff0000 ] ) ;
86
+ const [ val , nextGen ] = randomUint32R ( defaultGen , [ 0xffff0000 , 0xffff0000 ] ) ;
97
87
expect ( val ) . toBe ( 0xffff0000 ) ;
98
- expect ( nextGen ) . toBe ( gen ) ;
88
+ expect ( nextGen ) . toBe ( defaultGen ) ;
99
89
} ) ;
100
90
} ) ;
101
91
102
92
describe ( "randomBoolean" , ( ) => {
103
93
it ( "should generate a random boolean value and a next generator" , ( ) => {
104
- const gen = initGen ( ) ;
105
- const [ val , nextGen ] = randomBoolean ( gen ) ;
94
+ const [ val , nextGen ] = randomBoolean ( defaultGen ) ;
106
95
expect ( val ) . toMatchInlineSnapshot ( `false` ) ;
107
- expect ( nextGen ) . not . toBe ( gen ) ;
96
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
108
97
} ) ;
109
98
} ) ;
110
99
111
100
describe ( "randomInt" , ( ) => {
112
101
it ( "should generate a random safe integer and a next generator" , ( ) => {
113
- const gen = initGen ( ) ;
114
- const [ val , nextGen ] = randomInt ( gen ) ;
102
+ const [ val , nextGen ] = randomInt ( defaultGen ) ;
115
103
expect ( val ) . toMatchInlineSnapshot ( `-4543985126733374` ) ;
116
104
expect ( Number . isSafeInteger ( val ) ) . toBe ( true ) ;
117
- expect ( nextGen ) . not . toBe ( gen ) ;
105
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
118
106
} ) ;
119
107
} ) ;
120
108
121
109
describe ( "randomIntR" , ( ) => {
122
110
it ( "should generate a random safe integer within a bounds and a next generator" , ( ) => {
123
- const gen = initGen ( ) ;
124
- const [ val , nextGen ] = randomIntR ( gen , [ - 100 , 100 ] ) ;
111
+ const [ val , nextGen ] = randomIntR ( defaultGen , [ - 100 , 100 ] ) ;
125
112
expect ( val ) . toMatchInlineSnapshot ( `93` ) ;
126
113
expect ( val ) . toBeGreaterThanOrEqual ( - 100 ) ;
127
114
expect ( val ) . toBeLessThanOrEqual ( 100 ) ;
128
- expect ( nextGen ) . not . toBe ( gen ) ;
115
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
129
116
} ) ;
130
117
131
118
it ( "should work if bounds are flipped" , ( ) => {
132
- const gen = initGen ( ) ;
133
- const [ val , nextGen ] = randomIntR ( gen , [ 100 , - 100 ] ) ;
119
+ const [ val , nextGen ] = randomIntR ( defaultGen , [ 100 , - 100 ] ) ;
134
120
expect ( val ) . toMatchInlineSnapshot ( `93` ) ;
135
121
expect ( val ) . toBeGreaterThanOrEqual ( - 100 ) ;
136
122
expect ( val ) . toBeLessThanOrEqual ( 100 ) ;
137
- expect ( nextGen ) . not . toBe ( gen ) ;
123
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
138
124
} ) ;
139
125
140
126
it ( "should work if bounds are equal" , ( ) => {
141
- const gen = initGen ( ) ;
142
- const [ val , nextGen ] = randomIntR ( gen , [ 42 , 42 ] ) ;
127
+ const [ val , nextGen ] = randomIntR ( defaultGen , [ 42 , 42 ] ) ;
143
128
expect ( val ) . toBe ( 42 ) ;
144
- expect ( nextGen ) . toBe ( gen ) ;
129
+ expect ( nextGen ) . toBe ( defaultGen ) ;
145
130
} ) ;
146
131
} ) ;
147
132
148
133
describe ( "random" , ( ) => {
149
134
it ( "should generate a random number within [0, 1) and a next generator" , ( ) => {
150
- const gen = initGen ( ) ;
151
- const [ val , nextGen ] = random ( gen ) ;
135
+ const [ val , nextGen ] = random ( defaultGen ) ;
152
136
expect ( val ) . toMatchInlineSnapshot ( `0.49551630887463477` ) ;
153
137
expect ( val ) . toBeGreaterThanOrEqual ( 0 ) ;
154
138
expect ( val ) . toBeLessThan ( 1 ) ;
155
- expect ( nextGen ) . not . toBe ( gen ) ;
139
+ expect ( nextGen ) . not . toBe ( defaultGen ) ;
156
140
} ) ;
157
141
} ) ;
0 commit comments