Module: JsonTestData::NumberHelper

Included in:
Number
Defined in:
lib/json_test_data/data_structures/helpers/number_helper.rb

Instance Method Summary collapse

Instance Method Details

#adjust_for_maximum(number:, maximum: nil, step_size: nil) ⇒ Object



3
4
5
6
7
8
# File 'lib/json_test_data/data_structures/helpers/number_helper.rb', line 3

def adjust_for_maximum(number:, maximum: nil, step_size: nil)
  return number unless (maximum && number >= maximum)

  num = !!step_size ? number - step_size : maximum - 1
  adjust_for_maximum(number: num, maximum: maximum, step_size: step_size)
end

#adjust_for_minimum(number:, minimum: nil, step_size: nil) ⇒ Object



10
11
12
13
14
15
# File 'lib/json_test_data/data_structures/helpers/number_helper.rb', line 10

def adjust_for_minimum(number:, minimum: nil, step_size: nil)
  return number unless minimum && minimum >= number

  num = !!step_size ? number + step_size : minimum + 1
  adjust_for_minimum(number: num, minimum: minimum, step_size: step_size)
end

#between(min:, max:, integer: false) ⇒ Object



17
18
19
# File 'lib/json_test_data/data_structures/helpers/number_helper.rb', line 17

def between(min:, max:, integer: false)
  return integer ? mean(min, max).round(0) : mean(min, max)
end

#mean(*numbers) ⇒ Object



21
22
23
# File 'lib/json_test_data/data_structures/helpers/number_helper.rb', line 21

def mean(*numbers)
  numbers.inject(:+).to_f.quo(numbers.length)
end