summaryrefslogtreecommitdiff
path: root/test/test_securerandom.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-25 05:26:31 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-25 05:26:31 +0000
commit2c3656f5e8c14f2e88e2100eb5e9911b58f94d37 (patch)
tree566e68d6dd667ba2f2bd2814ab097c3b69b1e277 /test/test_securerandom.rb
parent31637f00fcbaf7c92313e8bf673925b47abaad7f (diff)
test: refine assertions
* test/test_prime.rb (test_eratosthenes_works_fine_after_timeout): use assert_raise to check timeout. * test/test_securerandom.rb: check if results are hexadecimal strings, and refine failure messages. * test/test_tracer.rb (test_tracer_with_option_r_without_gems): use assert_equal to compare. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/test_securerandom.rb')
-rw-r--r--test/test_securerandom.rb27
1 files changed, 14 insertions, 13 deletions
diff --git a/test/test_securerandom.rb b/test/test_securerandom.rb
index 0a78624..da48a3b 100644
--- a/test/test_securerandom.rb
+++ b/test/test_securerandom.rb
@@ -104,10 +104,13 @@ end
end
def test_s_hex
- assert_equal(16 * 2, @it.hex.size)
+ s = @it.hex
+ assert_equal(16 * 2, s.size)
+ assert_match(/\A\h+\z/, s)
33.times do |idx|
- assert_equal(idx * 2, @it.hex(idx).size)
- assert_equal(idx, @it.hex(idx).gsub(/(..)/) { [$1].pack('H*') }.size)
+ s = @it.hex(idx)
+ assert_equal(idx * 2, s.size)
+ assert_match(/\A\h*\z/, s)
end
end
@@ -128,23 +131,20 @@ end
assert_not_match(safe, @it.urlsafe_base64(idx))
end
# base64 can include unsafe byte
- 10001.times do |idx|
- return if safe =~ @it.base64(idx)
- end
- flunk
+ assert((0..10000).any? {|idx| safe =~ @it.base64(idx)}, "None of base64(0..10000) is url-safe")
end
def test_s_random_number_float
101.times do
v = @it.random_number
- assert(0.0 <= v && v < 1.0)
+ assert_in_range(0.0...1.0, v)
end
end
def test_s_random_number_float_by_zero
101.times do
v = @it.random_number(0)
- assert(0.0 <= v && v < 1.0)
+ assert_in_range(0.0...1.0, v)
end
end
@@ -152,16 +152,14 @@ end
101.times do |idx|
next if idx.zero?
v = @it.random_number(idx)
- assert(0 <= v && v < idx)
+ assert_in_range(0...idx, v)
end
end
def test_uuid
uuid = @it.uuid
assert_equal(36, uuid.size)
- uuid.unpack('a8xa4xa4xa4xa12').each do |e|
- assert_match(/^[0-9a-f]+$/, e)
- end
+ assert_match(/\A\h{8}-\h{4}-\h{4}-\h{4}-\h{12}\z/, uuid)
end
def protect
@@ -182,4 +180,7 @@ end
}
end
+ def assert_in_range(range, result, mesg = nil)
+ assert(range.cover?(result), message(mesg) {"Expected #{result} to be in #{range}"})
+ end
end