descriptive_statistics 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e981e428e540b52e30081acb0032710f554d3e21
4
- data.tar.gz: 77d7e94da2d230552ca0ce4d5207f89c1a5f09a4
3
+ metadata.gz: e1879dad6f99acc6168dc63b2574ca72b3225d05
4
+ data.tar.gz: 1cc44d9e5259ba71a343556886a0ebc814800475
5
5
  SHA512:
6
- metadata.gz: b6cdc1e2960d9d0757d7c9f9a6376f157e00993d2ae3ce750e1e10f63cbc69de989bb9e7e0c60eb860ad890ec3822a8c4abe739edd1859b82ee3942a6d4fe97f
7
- data.tar.gz: e2c266d82340739389517c43b32423226209320f7757245eaecf5258b614f2b507d870e2be4f2bbb33f717fb13d566924082a13e25f1af0f451d61c9ab9997a2
6
+ metadata.gz: af8be7209ff639f578b7ddd01eebcd4149dfe75d94607d99964aafa353823a141737c34852213e46fba62877e36ab22905f768d7b3b2b9d27214c6724e252a58
7
+ data.tar.gz: 5180ca2d716200159d3843faf882a12ef167020d65dcca31efdf010368318c323538f564ea81d6337e13bcb19069a529c250ec8e637443ed3c0fa8b8d5679b0e
@@ -2,12 +2,34 @@ module DescriptiveStatistics
2
2
 
3
3
  class << self
4
4
 
5
- attr_accessor :empty_collection_default_value
5
+ def empty_collection_default_value
6
+ @empty_collection_default_value
7
+ end
8
+
9
+ def empty_collection_default_value=(value)
10
+ @empty_collection_default_value = value
11
+ DescriptiveStatistics.instance_methods.each { |m| default_values[m] = value }
12
+ end
13
+
14
+ DescriptiveStatistics.instance_methods.each do |m|
15
+ define_method("#{m}_empty_collection_default_value") do
16
+ default_values[m]
17
+ end
18
+ define_method("#{m}_empty_collection_default_value=") do |value|
19
+ default_values[m] = value
20
+ end
21
+ end
6
22
 
7
23
  DescriptiveStatistics.instance_methods.each do |m|
8
24
  define_method(m, DescriptiveStatistics.instance_method(m))
9
25
  end
10
26
 
27
+ private
28
+
29
+ def default_values
30
+ @default_values ||= {}
31
+ end
32
+
11
33
  end
12
34
 
13
35
  end
@@ -1,7 +1,7 @@
1
1
  module DescriptiveStatistics
2
2
  def mean(collection = self)
3
3
  values = Support::convert(collection)
4
- return DescriptiveStatistics.empty_collection_default_value unless values.size > 0
4
+ return DescriptiveStatistics.mean_empty_collection_default_value unless values.size > 0
5
5
 
6
6
  values.sum / values.number
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module DescriptiveStatistics
2
2
  def median(collection = self)
3
3
  values = Support::convert(collection)
4
- return DescriptiveStatistics.empty_collection_default_value unless values.size > 0
4
+ return DescriptiveStatistics.median_empty_collection_default_value unless values.size > 0
5
5
 
6
6
  values.percentile(50)
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module DescriptiveStatistics
2
2
  def percentile(p, collection = self)
3
3
  values = Support::convert(collection)
4
- return DescriptiveStatistics.empty_collection_default_value unless values.size > 0
4
+ return DescriptiveStatistics.percentile_empty_collection_default_value unless values.size > 0
5
5
 
6
6
  return values.first unless values.size > 1
7
7
 
@@ -2,7 +2,7 @@ module DescriptiveStatistics
2
2
  # percent of cases that are at or below a score
3
3
  def percentile_rank(p, collection = self)
4
4
  values = Support::convert(collection)
5
- return DescriptiveStatistics.empty_collection_default_value unless values.size > 0
5
+ return DescriptiveStatistics.percentile_rank_empty_collection_default_value unless values.size > 0
6
6
 
7
7
  return (((values.sort.rindex{ |x| x <= p } || -1.0) + 1.0)) / values.number * 100.0
8
8
  end
@@ -1,7 +1,7 @@
1
1
  module DescriptiveStatistics
2
2
  def range(collection = self)
3
3
  values = Support::convert(collection)
4
- return DescriptiveStatistics.empty_collection_default_value unless values.size > 0
4
+ return DescriptiveStatistics.range_empty_collection_default_value unless values.size > 0
5
5
 
6
6
  values.max - values.min
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module DescriptiveStatistics
2
2
  def standard_deviation(collection = self)
3
3
  values = Support::convert(collection)
4
- return DescriptiveStatistics.empty_collection_default_value unless values.size > 0
4
+ return DescriptiveStatistics.standard_deviation_empty_collection_default_value unless values.size > 0
5
5
 
6
6
  Math.sqrt(values.variance)
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module DescriptiveStatistics
2
2
  def sum(collection = self)
3
3
  values = Support::convert(collection)
4
- return DescriptiveStatistics.empty_collection_default_value unless values.size > 0
4
+ return DescriptiveStatistics.sum_empty_collection_default_value unless values.size > 0
5
5
 
6
6
  return values.inject(:+)
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module DescriptiveStatistics
2
2
  def variance(collection = self)
3
3
  values = Support::convert(collection)
4
- return DescriptiveStatistics.empty_collection_default_value unless values.size > 0
4
+ return DescriptiveStatistics.variance_empty_collection_default_value unless values.size > 0
5
5
 
6
6
  mean = values.mean
7
7
  values.map{ |sample| (mean - sample) ** 2 }.inject(:+) / values.number
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: descriptive_statistics
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derrick Parkhurst
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-09-05 00:00:00.000000000 Z
15
+ date: 2014-09-08 00:00:00.000000000 Z
16
16
  dependencies: []
17
17
  description: Adds descriptive statistics methods to Enumerable module for use on collections
18
18
  or Numeric data