test_values 0.3.0 → 0.4.0

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +110 -19
  4. data/lib/test_values/numeric_values.rb +46 -0
  5. data/lib/test_values/string_values.rb +5 -5
  6. data/lib/test_values/values_base.rb +22 -3
  7. data/lib/test_values/version.rb +1 -1
  8. data/lib/test_values.rb +3 -0
  9. data/markdown/readme/Rakefile +2 -1
  10. data/markdown/readme/classes/numeric_values/numerics_in_range/float_range/example.md +14 -0
  11. data/markdown/readme/classes/numeric_values/numerics_in_range/float_range/example.rb +4 -0
  12. data/markdown/readme/classes/numeric_values/numerics_in_range/float_range/output.txt +1 -0
  13. data/markdown/readme/classes/numeric_values/numerics_in_range/float_range/template.md +5 -0
  14. data/markdown/readme/classes/numeric_values/numerics_in_range/integer_range/example.md +14 -0
  15. data/markdown/readme/classes/numeric_values/numerics_in_range/integer_range/example.rb +4 -0
  16. data/markdown/readme/classes/numeric_values/numerics_in_range/integer_range/output.txt +1 -0
  17. data/markdown/readme/classes/numeric_values/numerics_in_range/integer_range/template.md +5 -0
  18. data/markdown/readme/classes/numeric_values/numerics_in_range/mixed_range/example.md +14 -0
  19. data/markdown/readme/classes/numeric_values/numerics_in_range/mixed_range/example.rb +4 -0
  20. data/markdown/readme/classes/numeric_values/numerics_in_range/mixed_range/output.txt +1 -0
  21. data/markdown/readme/classes/numeric_values/numerics_in_range/mixed_range/template.md +5 -0
  22. data/markdown/readme/classes/numeric_values/numerics_in_range/template.md +7 -0
  23. data/markdown/readme/classes/numeric_values/numerics_not_in_range/float_range/example.md +14 -0
  24. data/markdown/readme/classes/numeric_values/numerics_not_in_range/float_range/example.rb +4 -0
  25. data/markdown/readme/classes/numeric_values/numerics_not_in_range/float_range/output.txt +1 -0
  26. data/markdown/readme/classes/numeric_values/numerics_not_in_range/float_range/template.md +5 -0
  27. data/markdown/readme/classes/numeric_values/numerics_not_in_range/integer_range/example.md +14 -0
  28. data/markdown/readme/classes/numeric_values/numerics_not_in_range/integer_range/example.rb +4 -0
  29. data/markdown/readme/classes/numeric_values/numerics_not_in_range/integer_range/output.txt +1 -0
  30. data/markdown/readme/classes/numeric_values/numerics_not_in_range/integer_range/template.md +5 -0
  31. data/markdown/readme/classes/numeric_values/numerics_not_in_range/mixed_range/example.md +14 -0
  32. data/markdown/readme/classes/numeric_values/numerics_not_in_range/mixed_range/example.rb +4 -0
  33. data/markdown/readme/classes/numeric_values/numerics_not_in_range/mixed_range/output.txt +1 -0
  34. data/markdown/readme/classes/numeric_values/numerics_not_in_range/mixed_range/template.md +5 -0
  35. data/markdown/readme/classes/numeric_values/numerics_not_in_range/template.md +7 -0
  36. data/markdown/readme/classes/numeric_values/template.md +9 -0
  37. data/markdown/readme/named_values/example.md +7 -18
  38. data/markdown/readme/named_values/example.rb +2 -15
  39. data/markdown/readme/named_values/my_items.rb +12 -0
  40. data/markdown/readme/named_values/output.txt +2 -2
  41. data/markdown/readme/named_values/template.md +3 -1
  42. data/markdown/readme/template.md +5 -1
  43. metadata +31 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed1394d81783ca2931dcba4ef9a7d09caa81109c
4
- data.tar.gz: 165636172a73b2bfbe41b89d702fbe88526ff42e
3
+ metadata.gz: 70fc5eddad623f22ee48a51bc4e8f14db744dab8
4
+ data.tar.gz: f596ab9857ed3b06ccfd7457a89e43006cf61e28
5
5
  SHA512:
6
- metadata.gz: 42edc0139467d42f4bc141f4d26451d1fa6f6d2887823163f8e13e591814e7f32226d3f68c4e3cd9c19b1ae04490cce8a05a58d1ad30cf3627d1661bc8ec6049
7
- data.tar.gz: 0f397f8aeed2f73a8fd2b8ea8be1738ba3f68eac634ab50ca52431bf6f0a2719cd67f3a57b006f98e2b7e1e5c6cd90c71bd683350261b92de230d23bbe44afd2
6
+ metadata.gz: ee8ab1a7165c333ffdb37ce8a2e608aa39a247c4737a5babe7a16e976dd0fd8e42704312ac6f2876e9b9cfb4e8488e054b0aaf27675d03cc7b8ac5d4770f8e75
7
+ data.tar.gz: 7f80bf289d41c1cc5443aea4554ca751fb306959037179cf30bce2e1afa3136931d0602169814ecd6484e67970da72a12d95e9dbb7ad1ad4f939b352c5e46b3e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- test_values (0.3.0)
4
+ test_values (0.4.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  [![Gem](https://img.shields.io/gem/v/test_values.svg?style=flat)](http://rubygems.org/gems/test_values "View this project in Rubygems")
4
4
 
5
- This project makes it easy to generate _and utilize_ certain kinds of values for testing software.
5
+ This library makes it easy to generate _and utilize_ certain kinds of values for testing software.
6
6
 
7
7
  ## Named Values
8
8
 
9
- Generally speaking, a values method whose name is plural returns a hash of named values.
9
+ Generally speaking, a method in this library whose name is plural returns a hash of named values.
10
10
 
11
11
  The calling test can iterate over the hash, using the names as labels and the values as test data:
12
12
 
@@ -16,6 +16,8 @@ require 'minitest/autorun'
16
16
 
17
17
  require 'test_values'
18
18
 
19
+ require_relative 'my_items'
20
+
19
21
  class MyTest < Minitest::Test
20
22
 
21
23
  def test_bad_item_length
@@ -33,27 +35,12 @@ class MyTest < Minitest::Test
33
35
 
34
36
  end
35
37
 
36
- end
37
-
38
- class MyItems
39
-
40
- attr_accessor :items
41
-
42
- def initialize
43
- self.items = []
44
- end
45
-
46
- def add_item(item)
47
- raise ArgumentError.new(item) unless (4..8).include?(item.length)
48
- items.push(item)
49
- end
50
-
51
38
  end
52
39
  ```
53
40
 
54
41
  ```output.txt```:
55
42
  ```
56
- Run options: --seed 24259
43
+ Run options: --seed 8459
57
44
 
58
45
  # Running:
59
46
 
@@ -66,14 +53,17 @@ Value "xxxxxxxxx" should raise an exception because it is too_long.
66
53
  Got exception #<ArgumentError: xxxxxxxxx>
67
54
  .
68
55
 
69
- Finished in 0.001529s, 653.9277 runs/s, 1307.8554 assertions/s.
56
+ Finished in 0.001472s, 679.3557 runs/s, 1358.7113 assertions/s.
70
57
 
71
58
  1 runs, 2 assertions, 0 failures, 0 errors, 0 skips
72
59
  ```
73
60
 
61
+ (If you're nosy, you can peek at class [MyItems](https://raw.githubusercontent.com/BurdetteLamar/test_values/master/markdown/readme/named_values/my_items.rb).)
62
+
74
63
  ## Classes
75
64
 
76
65
  - [StringValues](#class-stringvalues)
66
+ - [NumericValues](#class-numericvalues)
77
67
 
78
68
  ### Class ```StringValues```
79
69
 
@@ -178,3 +168,104 @@ p s
178
168
  ```
179
169
  "abcab"
180
170
  ```
171
+
172
+
173
+ ### Class ```NumericValues```
174
+
175
+ #### Methods
176
+
177
+ - [numerics_in_range](#method-numerics_in_range)
178
+ - [numerics_not_in_range](#method-numerics_not_in_range)
179
+
180
+ #### Method ```numerics_in_range```
181
+
182
+ ##### Integer Range
183
+
184
+ ```example.rb```:
185
+ ```ruby
186
+ require 'test_values'
187
+
188
+ values = NumericValues.numerics_in_range((4..10))
189
+ p values
190
+ ```
191
+
192
+ ```output.txt```:
193
+ ```
194
+ {:min_value=>4, :max_value=>10}
195
+ ```
196
+
197
+ ##### Float Range
198
+
199
+ ```example.rb```:
200
+ ```ruby
201
+ require 'test_values'
202
+
203
+ values = NumericValues.numerics_in_range((4.5..10.5))
204
+ p values
205
+ ```
206
+
207
+ ```output.txt```:
208
+ ```
209
+ {:min_value=>4.5, :max_value=>10.5}
210
+ ```
211
+
212
+ ##### Mixed Range
213
+
214
+ ```example.rb```:
215
+ ```ruby
216
+ require 'test_values'
217
+
218
+ values = NumericValues.numerics_in_range((4..10.5))
219
+ p values
220
+ ```
221
+
222
+ ```output.txt```:
223
+ ```
224
+ {:min_value=>4, :max_value=>10.5}
225
+ ```
226
+ #### Method ```numerics_not_in_range```
227
+
228
+ ##### Integer Range
229
+
230
+ ```example.rb```:
231
+ ```ruby
232
+ require 'test_values'
233
+
234
+ values = NumericValues.numerics_not_in_range((4..10))
235
+ p values
236
+ ```
237
+
238
+ ```output.txt```:
239
+ ```
240
+ {:too_small=>3, :too_large=>11}
241
+ ```
242
+
243
+ ##### Float Range
244
+
245
+ ```example.rb```:
246
+ ```ruby
247
+ require 'test_values'
248
+
249
+ values = NumericValues.numerics_not_in_range((4.5..10.5))
250
+ p values
251
+ ```
252
+
253
+ ```output.txt```:
254
+ ```
255
+ {:too_small=>4.499999999999999, :too_large=>10.500000000000002}
256
+ ```
257
+
258
+ ##### Mixed Range
259
+
260
+ ```example.rb```:
261
+ ```ruby
262
+ require 'test_values'
263
+
264
+ values = NumericValues.numerics_not_in_range((4..10.5))
265
+ p values
266
+ ```
267
+
268
+ ```output.txt```:
269
+ ```
270
+ {:too_small=>3, :too_large=>10.500000000000002}
271
+ ```
@@ -0,0 +1,46 @@
1
+ class NumericValues < ValuesBase
2
+
3
+ def self.numerics_in_range(range)
4
+ self.verify_range_not_empty('range', range)
5
+ self.verify_kind_of('range.first', Numeric, range.first)
6
+ self.verify_kind_of('range.last', Numeric, range.last)
7
+ {
8
+ :min_value => range.first,
9
+ :max_value => range.last
10
+ }
11
+ end
12
+
13
+ def self.numerics_not_in_range(range)
14
+ self.verify_range_not_empty('range', range)
15
+ if range.first > range.last
16
+ inverted = true
17
+ first, last = range.last, range.first
18
+ else
19
+ inverted = false
20
+ first, last = range.first, range.last
21
+ end
22
+ case
23
+ when first.respond_to?(:pred)
24
+ too_small = first.pred
25
+ when first.respond_to?(:prev_float)
26
+ self.verify_finite_numeric(inverted ? 'range.last' : 'range.first', first)
27
+ too_small = first.prev_float
28
+ else
29
+ raise TypeError.new(first)
30
+ end
31
+ case
32
+ when last.respond_to?(:succ)
33
+ too_large = last.succ
34
+ when last.respond_to?(:next_float)
35
+ self.verify_finite_numeric(inverted ? 'range.first' : 'range.last', last)
36
+ too_large = last.next_float
37
+ else
38
+ raise ArgumentError.new(last)
39
+ end
40
+ {
41
+ :too_small => too_small,
42
+ :too_large => too_large,
43
+ }
44
+ end
45
+
46
+ end
@@ -10,9 +10,9 @@ class StringValues < ValuesBase
10
10
  # @raise [TypeError] if +base_string+ is not a +String+.
11
11
  # @raise [RangeError] if +length+ is negative.
12
12
  def self.string_of_length(length, base_string=BASE_STRING)
13
- self.verify_class('length', Integer, length)
14
- self.verify_class('base_string', String, base_string)
15
- self.verify_integer_size('length', (0..Float::INFINITY), length)
13
+ self.verify_kind_of('length', Integer, length)
14
+ self.verify_kind_of('base_string', String, base_string)
15
+ self.verify_integer_in_range('length', (0..Float::INFINITY), length)
16
16
  return '' if length == 0
17
17
  s = base_string
18
18
  while s.length < length
@@ -29,7 +29,7 @@ class StringValues < ValuesBase
29
29
  # @return [Hash] +Symbol+/+String+ pairs
30
30
  # with keys +:min_length+ and +:max_length+.
31
31
  def self.strings_in_length_range(range, base_string=BASE_STRING)
32
- self.verify_class('range', Range, range)
32
+ self.verify_kind_of('range', Range, range)
33
33
  {
34
34
  :min_length => self.string_of_length(range.first, base_string),
35
35
  :max_length => self.string_of_length(range.last, base_string),
@@ -44,7 +44,7 @@ class StringValues < ValuesBase
44
44
  # @return [Hash] +Symbol+/+String+ pairs
45
45
  # with keys +:too_short+ and +:too_long+.
46
46
  def self.strings_not_in_length_range(range, base_string=BASE_STRING)
47
- self.verify_class('range', Range, range)
47
+ self.verify_kind_of('range', Range, range)
48
48
  {
49
49
  :too_short => self.string_of_length(range.first - 1, base_string),
50
50
  :too_long => self.string_of_length(range.last + 1, base_string),
@@ -2,17 +2,36 @@ class ValuesBase
2
2
 
3
3
  private
4
4
 
5
- def self.verify_class(parameter_name, klass, obj)
5
+ def self.verify_kind_of(parameter_name, klass, obj)
6
6
  return true if obj.kind_of?(klass)
7
7
  message = "Parameter #{parameter_name} must be instance of #{klass.name}, not #{obj.inspect}"
8
8
  raise TypeError.new(message)
9
9
  end
10
10
 
11
- def self.verify_integer_size(parameter_name, range, obj)
12
- self.verify_class(parameter_name, Integer, obj)
11
+ def self.verify_integer_in_range(parameter_name, range, obj)
12
+ self.verify_kind_of(parameter_name, Integer, obj)
13
13
  return true if range.include?(obj)
14
14
  message = "Parameter #{parameter_name} must be in range #{range}, not #{obj}"
15
15
  raise RangeError.new(message)
16
16
  end
17
17
 
18
+ def self.verify_range_not_empty(parameter_name, range)
19
+ self.verify_kind_of(parameter_name, Range, range)
20
+ return if range.first == range.last
21
+ if range.each.size == 0
22
+ message = "Parameter #{parameter_name} must be a non-empty Range, not #{range}"
23
+ raise ArgumentError.new(message)
24
+ end
25
+ end
26
+
27
+ def self.verify_finite_numeric(parameter_name, obj)
28
+ self.verify_kind_of(parameter_name, Numeric, obj)
29
+ if obj.kind_of?(Float)
30
+ unless obj.finite?
31
+ message = "Parameter #{parameter_name} must be finite, not #{obj}"
32
+ raise ArgumentError.new(message)
33
+ end
34
+ end
35
+ end
36
+
18
37
  end
@@ -1,3 +1,3 @@
1
1
  class TestValues
2
- VERSION = '0.3.0'
2
+ VERSION = '0.4.0'
3
3
  end
data/lib/test_values.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  require 'test_values/version'
2
+
2
3
  require 'test_values/values_base'
4
+
5
+ require 'test_values/numeric_values'
3
6
  require 'test_values/string_values'
4
7
 
5
8
  class TestValues
@@ -5,6 +5,7 @@ namespace :build do
5
5
  task :readme do
6
6
  dir_path = File.dirname(__FILE__)
7
7
  Dir.chdir(dir_path) do
8
+ # Run each example.rb and make its template.
8
9
  ruby_file_name = 'example.rb'
9
10
  template_file_name = 'template.md'
10
11
  readme_file_path = File.join(
@@ -14,7 +15,6 @@ namespace :build do
14
15
  'README.md',
15
16
  )
16
17
  readme_file_path = File.absolute_path(readme_file_path)
17
- puts readme_file_path
18
18
  Find.find('.') do |path|
19
19
  next unless File.directory?(path)
20
20
  Dir.chdir(path) do
@@ -24,6 +24,7 @@ namespace :build do
24
24
  end
25
25
  end
26
26
  end
27
+ # Make the main README page.
27
28
  system("markdown_helper include --pristine #{template_file_name} #{readme_file_path}")
28
29
  end
29
30
  end
@@ -0,0 +1,14 @@
1
+ ##### Float Range
2
+
3
+ ```example.rb```:
4
+ ```ruby
5
+ require 'test_values'
6
+
7
+ values = NumericValues.numerics_in_range((4.5..10.5))
8
+ p values
9
+ ```
10
+
11
+ ```output.txt```:
12
+ ```
13
+ {:min_value=>4.5, :max_value=>10.5}
14
+ ```
@@ -0,0 +1,4 @@
1
+ require 'test_values'
2
+
3
+ values = NumericValues.numerics_in_range((4.5..10.5))
4
+ p values
@@ -0,0 +1 @@
1
+ {:min_value=>4.5, :max_value=>10.5}
@@ -0,0 +1,5 @@
1
+ ##### Float Range
2
+
3
+ @[ruby](example.rb)
4
+
5
+ @[:code_block](output.txt)
@@ -0,0 +1,14 @@
1
+ ##### Integer Range
2
+
3
+ ```example.rb```:
4
+ ```ruby
5
+ require 'test_values'
6
+
7
+ values = NumericValues.numerics_in_range((4..10))
8
+ p values
9
+ ```
10
+
11
+ ```output.txt```:
12
+ ```
13
+ {:min_value=>4, :max_value=>10}
14
+ ```
@@ -0,0 +1,4 @@
1
+ require 'test_values'
2
+
3
+ values = NumericValues.numerics_in_range((4..10))
4
+ p values
@@ -0,0 +1 @@
1
+ {:min_value=>4, :max_value=>10}
@@ -0,0 +1,5 @@
1
+ ##### Integer Range
2
+
3
+ @[ruby](example.rb)
4
+
5
+ @[:code_block](output.txt)
@@ -0,0 +1,14 @@
1
+ ##### Mixed Range
2
+
3
+ ```example.rb```:
4
+ ```ruby
5
+ require 'test_values'
6
+
7
+ values = NumericValues.numerics_in_range((4..10.5))
8
+ p values
9
+ ```
10
+
11
+ ```output.txt```:
12
+ ```
13
+ {:min_value=>4, :max_value=>10.5}
14
+ ```
@@ -0,0 +1,4 @@
1
+ require 'test_values'
2
+
3
+ values = NumericValues.numerics_in_range((4..10.5))
4
+ p values
@@ -0,0 +1 @@
1
+ {:min_value=>4, :max_value=>10.5}
@@ -0,0 +1,5 @@
1
+ ##### Mixed Range
2
+
3
+ @[ruby](example.rb)
4
+
5
+ @[:code_block](output.txt)
@@ -0,0 +1,7 @@
1
+ #### Method ```numerics_in_range```
2
+
3
+ @[:markdown](integer_range/template.md)
4
+
5
+ @[:markdown](float_range/template.md)
6
+
7
+ @[:markdown](mixed_range/template.md)
@@ -0,0 +1,14 @@
1
+ ##### Float Range
2
+
3
+ ```example.rb```:
4
+ ```ruby
5
+ require 'test_values'
6
+
7
+ values = NumericValues.numerics_not_in_range((4.5..10.5))
8
+ p values
9
+ ```
10
+
11
+ ```output.txt```:
12
+ ```
13
+ {:too_small=>4.499999999999999, :too_large=>10.500000000000002}
14
+ ```
@@ -0,0 +1,4 @@
1
+ require 'test_values'
2
+
3
+ values = NumericValues.numerics_not_in_range((4.5..10.5))
4
+ p values
@@ -0,0 +1 @@
1
+ {:too_small=>4.499999999999999, :too_large=>10.500000000000002}
@@ -0,0 +1,5 @@
1
+ ##### Float Range
2
+
3
+ @[ruby](example.rb)
4
+
5
+ @[:code_block](output.txt)
@@ -0,0 +1,14 @@
1
+ ##### Integer Range
2
+
3
+ ```example.rb```:
4
+ ```ruby
5
+ require 'test_values'
6
+
7
+ values = NumericValues.numerics_not_in_range((4..10))
8
+ p values
9
+ ```
10
+
11
+ ```output.txt```:
12
+ ```
13
+ {:too_small=>3, :too_large=>11}
14
+ ```
@@ -0,0 +1,4 @@
1
+ require 'test_values'
2
+
3
+ values = NumericValues.numerics_not_in_range((4..10))
4
+ p values
@@ -0,0 +1 @@
1
+ {:too_small=>3, :too_large=>11}
@@ -0,0 +1,5 @@
1
+ ##### Integer Range
2
+
3
+ @[ruby](example.rb)
4
+
5
+ @[:code_block](output.txt)
@@ -0,0 +1,14 @@
1
+ ##### Mixed Range
2
+
3
+ ```example.rb```:
4
+ ```ruby
5
+ require 'test_values'
6
+
7
+ values = NumericValues.numerics_not_in_range((4..10.5))
8
+ p values
9
+ ```
10
+
11
+ ```output.txt```:
12
+ ```
13
+ {:too_small=>3, :too_large=>10.500000000000002}
14
+ ```
@@ -0,0 +1,4 @@
1
+ require 'test_values'
2
+
3
+ values = NumericValues.numerics_not_in_range((4..10.5))
4
+ p values
@@ -0,0 +1 @@
1
+ {:too_small=>3, :too_large=>10.500000000000002}
@@ -0,0 +1,5 @@
1
+ ##### Mixed Range
2
+
3
+ @[ruby](example.rb)
4
+
5
+ @[:code_block](output.txt)
@@ -0,0 +1,7 @@
1
+ #### Method ```numerics_not_in_range```
2
+
3
+ @[:markdown](integer_range/template.md)
4
+
5
+ @[:markdown](float_range/template.md)
6
+
7
+ @[:markdown](mixed_range/template.md)
@@ -0,0 +1,9 @@
1
+ ### Class ```NumericValues```
2
+
3
+ #### Methods
4
+
5
+ - [numerics_in_range](#method-numerics_in_range)
6
+ - [numerics_not_in_range](#method-numerics_not_in_range)
7
+
8
+ @[:markdown](numerics_in_range/template.md)
9
+ @[:markdown](numerics_not_in_range/template.md)
@@ -1,6 +1,6 @@
1
1
  ## Named Values
2
2
 
3
- Generally speaking, a values method whose name is plural returns a hash of named values.
3
+ Generally speaking, a method in this library whose name is plural returns a hash of named values.
4
4
 
5
5
  The calling test can iterate over the hash, using the names as labels and the values as test data:
6
6
 
@@ -10,6 +10,8 @@ require 'minitest/autorun'
10
10
 
11
11
  require 'test_values'
12
12
 
13
+ require_relative 'my_items'
14
+
13
15
  class MyTest < Minitest::Test
14
16
 
15
17
  def test_bad_item_length
@@ -27,27 +29,12 @@ class MyTest < Minitest::Test
27
29
 
28
30
  end
29
31
 
30
- end
31
-
32
- class MyItems
33
-
34
- attr_accessor :items
35
-
36
- def initialize
37
- self.items = []
38
- end
39
-
40
- def add_item(item)
41
- raise ArgumentError.new(item) unless (4..8).include?(item.length)
42
- items.push(item)
43
- end
44
-
45
32
  end
46
33
  ```
47
34
 
48
35
  ```output.txt```:
49
36
  ```
50
- Run options: --seed 24259
37
+ Run options: --seed 8459
51
38
 
52
39
  # Running:
53
40
 
@@ -60,7 +47,9 @@ Value "xxxxxxxxx" should raise an exception because it is too_long.
60
47
  Got exception #<ArgumentError: xxxxxxxxx>
61
48
  .
62
49
 
63
- Finished in 0.001529s, 653.9277 runs/s, 1307.8554 assertions/s.
50
+ Finished in 0.001472s, 679.3557 runs/s, 1358.7113 assertions/s.
64
51
 
65
52
  1 runs, 2 assertions, 0 failures, 0 errors, 0 skips
66
53
  ```
54
+
55
+ (If you're nosy, you can peek at class [MyItems](https://raw.githubusercontent.com/BurdetteLamar/test_values/master/markdown/readme/named_values/my_items.rb).)
@@ -2,6 +2,8 @@ require 'minitest/autorun'
2
2
 
3
3
  require 'test_values'
4
4
 
5
+ require_relative 'my_items'
6
+
5
7
  class MyTest < Minitest::Test
6
8
 
7
9
  def test_bad_item_length
@@ -20,18 +22,3 @@ class MyTest < Minitest::Test
20
22
  end
21
23
 
22
24
  end
23
-
24
- class MyItems
25
-
26
- attr_accessor :items
27
-
28
- def initialize
29
- self.items = []
30
- end
31
-
32
- def add_item(item)
33
- raise ArgumentError.new(item) unless (4..8).include?(item.length)
34
- items.push(item)
35
- end
36
-
37
- end
@@ -0,0 +1,12 @@
1
+ class MyItems
2
+
3
+ def initialize
4
+ @items = []
5
+ end
6
+
7
+ def add_item(item)
8
+ raise ArgumentError.new(item) unless (4..8).include?(item.length)
9
+ @items.push(item)
10
+ end
11
+
12
+ end
@@ -1,4 +1,4 @@
1
- Run options: --seed 24259
1
+ Run options: --seed 8459
2
2
 
3
3
  # Running:
4
4
 
@@ -11,6 +11,6 @@ Value "xxxxxxxxx" should raise an exception because it is too_long.
11
11
  Got exception #<ArgumentError: xxxxxxxxx>
12
12
  .
13
13
 
14
- Finished in 0.001529s, 653.9277 runs/s, 1307.8554 assertions/s.
14
+ Finished in 0.001472s, 679.3557 runs/s, 1358.7113 assertions/s.
15
15
 
16
16
  1 runs, 2 assertions, 0 failures, 0 errors, 0 skips
@@ -1,9 +1,11 @@
1
1
  ## Named Values
2
2
 
3
- Generally speaking, a values method whose name is plural returns a hash of named values.
3
+ Generally speaking, a method in this library whose name is plural returns a hash of named values.
4
4
 
5
5
  The calling test can iterate over the hash, using the names as labels and the values as test data:
6
6
 
7
7
  @[ruby](example.rb)
8
8
 
9
9
  @[:code_block](output.txt)
10
+
11
+ (If you're nosy, you can peek at class [MyItems](https://raw.githubusercontent.com/BurdetteLamar/test_values/master/markdown/readme/named_values/my_items.rb).)
@@ -2,12 +2,16 @@
2
2
 
3
3
  [![Gem](https://img.shields.io/gem/v/test_values.svg?style=flat)](http://rubygems.org/gems/test_values "View this project in Rubygems")
4
4
 
5
- This project makes it easy to generate _and utilize_ certain kinds of values for testing software.
5
+ This library makes it easy to generate _and utilize_ certain kinds of values for testing software.
6
6
 
7
7
  @[:markdown](named_values/template.md)
8
8
 
9
9
  ## Classes
10
10
 
11
11
  - [StringValues](#class-stringvalues)
12
+ - [NumericValues](#class-numericvalues)
12
13
 
13
14
  @[:markdown](classes/string_values/template.md)
15
+
16
+
17
+ @[:markdown](classes/numeric_values/template.md)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_values
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - burdettelamar
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-15 00:00:00.000000000 Z
11
+ date: 2018-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -70,10 +70,38 @@ files:
70
70
  - bin/console
71
71
  - bin/setup
72
72
  - lib/test_values.rb
73
+ - lib/test_values/numeric_values.rb
73
74
  - lib/test_values/string_values.rb
74
75
  - lib/test_values/values_base.rb
75
76
  - lib/test_values/version.rb
76
77
  - markdown/readme/Rakefile
78
+ - markdown/readme/classes/numeric_values/numerics_in_range/float_range/example.md
79
+ - markdown/readme/classes/numeric_values/numerics_in_range/float_range/example.rb
80
+ - markdown/readme/classes/numeric_values/numerics_in_range/float_range/output.txt
81
+ - markdown/readme/classes/numeric_values/numerics_in_range/float_range/template.md
82
+ - markdown/readme/classes/numeric_values/numerics_in_range/integer_range/example.md
83
+ - markdown/readme/classes/numeric_values/numerics_in_range/integer_range/example.rb
84
+ - markdown/readme/classes/numeric_values/numerics_in_range/integer_range/output.txt
85
+ - markdown/readme/classes/numeric_values/numerics_in_range/integer_range/template.md
86
+ - markdown/readme/classes/numeric_values/numerics_in_range/mixed_range/example.md
87
+ - markdown/readme/classes/numeric_values/numerics_in_range/mixed_range/example.rb
88
+ - markdown/readme/classes/numeric_values/numerics_in_range/mixed_range/output.txt
89
+ - markdown/readme/classes/numeric_values/numerics_in_range/mixed_range/template.md
90
+ - markdown/readme/classes/numeric_values/numerics_in_range/template.md
91
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/float_range/example.md
92
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/float_range/example.rb
93
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/float_range/output.txt
94
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/float_range/template.md
95
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/integer_range/example.md
96
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/integer_range/example.rb
97
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/integer_range/output.txt
98
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/integer_range/template.md
99
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/mixed_range/example.md
100
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/mixed_range/example.rb
101
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/mixed_range/output.txt
102
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/mixed_range/template.md
103
+ - markdown/readme/classes/numeric_values/numerics_not_in_range/template.md
104
+ - markdown/readme/classes/numeric_values/template.md
77
105
  - markdown/readme/classes/string_values/string_of_length/base_string/example.md
78
106
  - markdown/readme/classes/string_values/string_of_length/base_string/example.rb
79
107
  - markdown/readme/classes/string_values/string_of_length/base_string/output.txt
@@ -104,6 +132,7 @@ files:
104
132
  - markdown/readme/classes/string_values/template.md
105
133
  - markdown/readme/named_values/example.md
106
134
  - markdown/readme/named_values/example.rb
135
+ - markdown/readme/named_values/my_items.rb
107
136
  - markdown/readme/named_values/output.txt
108
137
  - markdown/readme/named_values/template.md
109
138
  - markdown/readme/template.md