test_bench-random 2.1.0.0 → 2.2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 85f8b74c6e744960d9ffb28f4178660048c515304d220997a57c3a6166b6472f
4
- data.tar.gz: 26f1f9fc8d29a58cfdbb0325464a4af0d58a37c116b22df8e24fd879e4f40d42
3
+ metadata.gz: c7a175666b3f2d610b67cbccc4559e431cb66b32d6aec5c1f2238f4f1d724c62
4
+ data.tar.gz: e04fe2981906338a2a4c15ce6587929fb8640c6275bc58ea6a13140bbfdaa62d
5
5
  SHA512:
6
- metadata.gz: 946e7e4a902cc691439d338fd526de62f3d44f0b3f7a63033eff757e7cd8f1615f576721887f19a9f222941744f4fc697322da3f66ce718fec0d5837874c35ed
7
- data.tar.gz: 3d3fa3aa9cae7c5068595fe4e45f9f713dda2898d2d3aceb89e36be2ce586c5cdb312182338f816bf83294a2dc709ee5671bb03b13c7b7ebe323db84ef7ddeb7
6
+ metadata.gz: dd0c7c70806ff933dbeee314937681f359c7e267458b625a4c97f1ee3873527f5a88f50bbde609900d798e6e1aa96fcb11adff78d2db83caf3e3c070a418fc9c
7
+ data.tar.gz: 2797983b3efbb541b2b7159bb1a01e635331eb82494e05809b0a53bd5b33860932a909102ee1f460591eb4622ce0501a6eeddef6b381839292c0ba2418732cd3
@@ -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.1
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