prubybility 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f9cc5ff2604249dd3ecfabe8f849b55091cad37903665342c48c60bb5672490c
4
- data.tar.gz: 327f49d644ee8c009ca7ae20a290f0a43aaa1cb19779cbc29ca14ecd3ed691e7
3
+ metadata.gz: 1bbbe8171683ce2fd73afc9b30b52f62af59b70135bf7aa8306eb829d6d80b1c
4
+ data.tar.gz: 7f5d6a013cf1644885fb6ec32429de5af5bb4cba5f52f747b981c67082d8fd66
5
5
  SHA512:
6
- metadata.gz: aee3015f5fabe80c7ef6dc81a9fbba5e4544527d3475d2623b272f58ca0342537551c9ea5bf4998394e957c07ca7ef2a3bc8b874cc89621dd4bfd777384f767e
7
- data.tar.gz: 0b63040f893f861912d0f53cb45716b53755d52262c80d18e9d2c1696173b1c16423a9572f49f4eb80ab5ef753e5f601bf6cb66daad2a415d9ada641af5f6cb7
6
+ metadata.gz: d18db739299deaae19611265bff16eaec0c140df5ca8a852f48208e7ceb17a32f86544ebd9871eb41792db43cf46ce28a994540d3d350b880bf9966261eff6e8
7
+ data.tar.gz: 50b7fe673335ad374cdc05faf9c927af7d3bc0d2e9062b56481397951ec2d2f1bf55f66aec95e1830cd960b37366e97197d058628f76c30822121f51392eada5
@@ -10,9 +10,17 @@ module Prubybility
10
10
  end
11
11
 
12
12
  def p(var)
13
- return if var != 0 && var != 1
13
+ return unless valid_value?(var)
14
14
 
15
15
  (theta**var) * (1 - theta)**(1 - var)
16
16
  end
17
+
18
+ private
19
+
20
+ def valid_value?(var)
21
+ return false unless var.is_a? Integer
22
+ return false unless var == 0 || var == 1
23
+ true
24
+ end
17
25
  end
18
26
  end
@@ -16,8 +16,9 @@ module Prubybility
16
16
  @variance = @n * @theta * (1 - @theta)
17
17
  end
18
18
 
19
- def p(var)
20
- choose(var) * (theta**var) * ((1 - theta)**(n - var))
19
+ def p(number_of_successes)
20
+ return unless valid_value?(number_of_successes)
21
+ choose(number_of_successes) * (theta**number_of_successes) * ((1 - theta)**(n - number_of_successes))
21
22
  end
22
23
 
23
24
  private
@@ -26,6 +27,12 @@ module Prubybility
26
27
  Prubybility::Combinations.choose(n, var)
27
28
  end
28
29
 
30
+ def valid_value?(var)
31
+ return unless var.is_a? Integer
32
+ return unless var > 0 && var <= n
33
+ true
34
+ end
35
+
29
36
  attr_writer :n, :theta, :expected_value, :variance
30
37
  end
31
38
  end
@@ -19,11 +19,15 @@ module Prubybility
19
19
  end
20
20
 
21
21
  def p(var)
22
- choose(var - 1, k - 1) * (theta**k) * ((1 - theta)**(var - k))
22
+ choose(var) * (theta**k) * ((1 - theta)**(var - k))
23
23
  end
24
24
 
25
25
  private
26
26
 
27
- attr_writer :n, :theta, :expected_value, :variance
27
+ def choose(var)
28
+ Prubybility::Combinations.choose(var -1, k - 1)
29
+ end
30
+
31
+ attr_writer :k, :theta, :expected_value, :variance
28
32
  end
29
33
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Prubybility
4
- VERSION = '0.0.12'
4
+ VERSION = '0.0.13'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prubybility
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Lee