Class: ABBA::ABTest::Variant

Inherits:
Object
  • Object
show all
Defined in:
lib/abba/ab_test.rb

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ Variant

Returns a new instance of Variant.

Raises:

  • (ArgumentError)


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_rateObject



46
47
48
# File 'lib/abba/ab_test.rb', line 46

def failure_rate
  failures/size.to_f
end

#failuresObject



34
35
36
# File 'lib/abba/ab_test.rb', line 34

def failures
  @failures ||= calculate_failures
end

#sizeObject



38
39
40
# File 'lib/abba/ab_test.rb', line 38

def size
  @size ||= calculate_size
end

#success_rateObject



42
43
44
# File 'lib/abba/ab_test.rb', line 42

def success_rate
  successes/size.to_f
end

#successesObject



30
31
32
# File 'lib/abba/ab_test.rb', line 30

def successes
  @successes ||= calculate_successes
end