Class: ABBA::ABTest::Variant
- Inherits:
-
Object
- Object
- ABBA::ABTest::Variant
- Defined in:
- lib/abba/ab_test.rb
Instance Method Summary collapse
- #==(other) ⇒ Object
- #failure_rate ⇒ Object
- #failures ⇒ Object
-
#initialize(args = {}) ⇒ Variant
constructor
A new instance of Variant.
- #size ⇒ Object
- #success_rate ⇒ Object
- #successes ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ Variant
Returns a new instance of Variant.
23 24 25 26 27 28 |
# File 'lib/abba/ab_test.rb', line 23 def initialize(args={}) @successes = args[:successes] @failures = args[:failures] @size = args[:size] raise ArgumentError, "Invalid ABTest variant, you must pass 2 or more of :successes, :failures, :size and successes + failures = size" unless validate end |
Instance Method Details
#==(other) ⇒ Object
50 51 52 |
# File 'lib/abba/ab_test.rb', line 50 def ==(other) size == other.size && successes == other.successes && failures == other.failures end |
#failure_rate ⇒ Object
46 47 48 |
# File 'lib/abba/ab_test.rb', line 46 def failure_rate failures/size.to_f end |
#failures ⇒ Object
34 35 36 |
# File 'lib/abba/ab_test.rb', line 34 def failures @failures ||= calculate_failures end |
#size ⇒ Object
38 39 40 |
# File 'lib/abba/ab_test.rb', line 38 def size @size ||= calculate_size end |
#success_rate ⇒ Object
42 43 44 |
# File 'lib/abba/ab_test.rb', line 42 def success_rate successes/size.to_f end |
#successes ⇒ Object
30 31 32 |
# File 'lib/abba/ab_test.rb', line 30 def successes @successes ||= calculate_successes end |