test_bench-random 2.1.0.0 → 2.2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 85f8b74c6e744960d9ffb28f4178660048c515304d220997a57c3a6166b6472f
4
- data.tar.gz: 26f1f9fc8d29a58cfdbb0325464a4af0d58a37c116b22df8e24fd879e4f40d42
3
+ metadata.gz: e30c460ce61a331fac2f13a9d056acbb1615b14a7da5b9e330dffbb7396c5231
4
+ data.tar.gz: e7b2774892bd081037e2533ed7649c25e02e36a1abf5790a81587a3379b1e96c
5
5
  SHA512:
6
- metadata.gz: 946e7e4a902cc691439d338fd526de62f3d44f0b3f7a63033eff757e7cd8f1615f576721887f19a9f222941744f4fc697322da3f66ce718fec0d5837874c35ed
7
- data.tar.gz: 3d3fa3aa9cae7c5068595fe4e45f9f713dda2898d2d3aceb89e36be2ce586c5cdb312182338f816bf83294a2dc709ee5671bb03b13c7b7ebe323db84ef7ddeb7
6
+ metadata.gz: eddf52771ece3597e41ba86013f3fac6e73dbc92e9d35ef22321752d8f714df5dd383c14f4836953440464841c838e11817be4e9abd704b7b6a897981b8a7b62
7
+ data.tar.gz: 80cbe6725d279b45a5ee2ab6a5d5c76bad6872d18fb6af7fafc9933ab098f88acd3363ab817edec7d02ed80483481e4f3a4f6105f87cc5c4c64455d1de119a7f
@@ -3,7 +3,11 @@ module TestBench
3
3
  module Controls
4
4
  module Seed
5
5
  def self.example
6
- 1
6
+ 0x1111_1111_1111_1111
7
+ end
8
+
9
+ def self.text
10
+ example.to_s(36)
7
11
  end
8
12
 
9
13
  module Namespace
@@ -15,6 +15,11 @@ module TestBench
15
15
  end
16
16
  attr_writer :namespace
17
17
 
18
+ def sequence
19
+ @sequence ||= 0
20
+ end
21
+ attr_writer :sequence
22
+
18
23
  def self.build(seed=nil, namespace: nil)
19
24
  instance = new
20
25
  instance.seed = seed
@@ -22,12 +27,22 @@ module TestBench
22
27
  instance
23
28
  end
24
29
 
30
+ def self.instance
31
+ @instance ||= build
32
+ end
33
+
34
+ def self.configure(receiver, attr_name: nil)
35
+ attr_name ||= :random
36
+
37
+ receiver.public_send(:"#{attr_name}=", instance)
38
+ end
39
+
25
40
  def string
26
41
  integer.to_s(36)
27
42
  end
28
43
 
29
44
  def integer
30
- bytes = generator.bytes(8).bytes
45
+ bytes = next_qword.bytes
31
46
 
32
47
  number = 0
33
48
 
@@ -39,11 +54,13 @@ module TestBench
39
54
  end
40
55
 
41
56
  def fraction
57
+ self.sequence += 1
58
+
42
59
  generator.rand
43
60
  end
44
61
 
45
62
  def boolean
46
- byte = generator.bytes(1).bytes.first
63
+ byte = next_qword.bytes.first
47
64
 
48
65
  if byte % 2 == 1
49
66
  true
@@ -52,6 +69,22 @@ module TestBench
52
69
  end
53
70
  end
54
71
 
72
+ def reset?(namespace=nil)
73
+ namespace ||= self.namespace
74
+
75
+ if namespace != self.namespace
76
+ return false
77
+ end
78
+
79
+ sequence.zero?
80
+ end
81
+
82
+ def next_qword
83
+ self.sequence += 1
84
+
85
+ generator.bytes(8)
86
+ end
87
+
55
88
  def reset(namespace=nil)
56
89
  namespace ||= self.namespace
57
90
 
@@ -60,6 +93,8 @@ module TestBench
60
93
  self.generator = generator
61
94
  self.namespace = namespace
62
95
 
96
+ self.sequence = 0
97
+
63
98
  generator.seed
64
99
  end
65
100
 
@@ -99,11 +134,27 @@ module TestBench
99
134
  end
100
135
  end
101
136
 
137
+ module Substitute
138
+ def self.build
139
+ Random.build
140
+ end
141
+
142
+ class Random < Random
143
+ alias :set_seed :seed=
144
+
145
+ def self.build
146
+ instance = new
147
+ instance.set_seed(0)
148
+ instance
149
+ end
150
+ end
151
+ end
152
+
102
153
  module Defaults
103
154
  def self.seed
104
155
  seed = ENV['TEST_BENCH_SEED']
105
156
  if not seed.nil?
106
- seed.to_i
157
+ seed.to_i(36)
107
158
  else
108
159
  ::Random.new_seed
109
160
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_bench-random
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0.0
4
+ version: 2.2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Ladd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-24 00:00:00.000000000 Z
11
+ date: 2023-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: test_bench-bootstrap
14
+ name: test_bench-isolated
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -53,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  requirements: []
56
- rubygems_version: 3.3.23
56
+ rubygems_version: 3.4.10
57
57
  signing_key:
58
58
  specification_version: 4
59
59
  summary: Random value controls for TestBench