spec/helpers.rb in games_dice-0.3.12 vs spec/helpers.rb in games_dice-0.4.0

- old
+ new

@@ -1,37 +1,39 @@ +# frozen_string_literal: true + # games_dice/spec/helpers.rb require 'pathname' require 'coveralls' Coveralls.wear! require 'games_dice' - -def fixture name - (Pathname.new(__FILE__).dirname + "fixtures" + name).to_s +def fixture(name) + "#{__dir__}/fixtures/#{name}" end # TestPRNG tests short predictable series class TestPRNG def initialize - @numbers = [0.123,0.234,0.345,0.999,0.876,0.765,0.543,0.111,0.333,0.777] + @numbers = [0.123, 0.234, 0.345, 0.999, 0.876, 0.765, 0.543, 0.111, 0.333, 0.777] end - def rand(n) - Integer( n * @numbers.pop ) + + def rand(num) + Integer(num * @numbers.pop) end end # TestPRNGMax checks behaviour of re-rolls class TestPRNGMax - def rand(n) - Integer( n ) - 1 + def rand(num) + Integer(num) - 1 end end # TestPRNGMin checks behaviour of re-rolls class TestPRNGMin - def rand(n) + def rand(_num) 1 end end # A valid distribution is: @@ -40,35 +42,35 @@ # Values are all positive Floats, between 0.0 and 1.0 # Sum of values is 1.0 RSpec::Matchers.define :be_valid_distribution do match do |given| @error = nil - if ! given.is_a?(Hash) + if !given.is_a?(Hash) @error = "distribution should be a Hash, but it is a #{given.class}" - elsif given.keys.any? { |k| ! k.is_a?(Integer) } - bad_key = given.keys.first { |k| ! k.is_a?(Integer) } + elsif given.keys.any? { |k| !k.is_a?(Integer) } + bad_key = given.keys.first { |k| !k.is_a?(Integer) } @error = "all keys should be Integers, but found '#{bad_key.inspect}' which is a #{bad_key.class}" - elsif given.values.any? { |v| ! v.is_a?(Float) } - bad_value = given.values.find { |v| ! v.is_a?(Float) } + elsif given.values.any? { |v| !v.is_a?(Float) } + bad_value = given.values.find { |v| !v.is_a?(Float) } @error = "all values should be Floats, but found '#{bad_value.inspect}' which is a #{bad_value.class}" elsif given.values.any? { |v| v < 0.0 || v > 1.0 } bad_value = given.values.find { |v| v < 0.0 || v > 1.0 } @error = "all values should be in range (0.0..1.0), but found #{bad_value}" elsif (1.0 - given.values.inject(:+)).abs > 1e-6 total_probs = given.values.inject(:+) @error = "sum of values should be 1.0, but got #{total_probs}" end - ! @error + !@error end - failure_message do |given| - @error ? @error : 'Distribution is valid and complete' + failure_message do |_given| + @error || 'Distribution is valid and complete' end - failure_message_when_negated do |given| - @error ? @error : 'Distribution is valid and complete' + failure_message_when_negated do |_given| + @error || 'Distribution is valid and complete' end - description do |given| - "a hash describing a complete probability distribution of integer results" + description do |_given| + 'a hash describing a complete probability distribution of integer results' end end