lib/facet/enumerable/probability.rb in facets-1.1.0 vs lib/facet/enumerable/probability.rb in facets-1.2.0

- old
+ new

@@ -1,59 +2 @@ -#-- -# Credit goes to Brian Schröder for current code -# and Derek for original. -#++ -module Enumerable - - # Generates a hash mapping each unique symbol in the array - # to the relative frequency, i.e. the probablity, of - # it appearence. - def probability - probs = Hash.new(0.0) - size = 0.0 - each do | e | - probs[e] += 1.0 - size += 1.0 - end - probs.keys.each { |e| probs[e] /= size } - probs - end - -# old def -# -# def probability -# arr = self.to_a -# probHash = Hash.new -# size = arr.size.to_f -# arr.uniq.each do |i| -# ct = arr.inject(0) do |mem,obj| -# obj.eql?(i) ? (mem+1) : mem -# end -# probHash[i] = ct.to_f/size -# end -# probHash -# end - -end - - - -# _____ _ -# |_ _|__ ___| |_ -# | |/ _ \/ __| __| -# | | __/\__ \ |_ -# |_|\___||___/\__| -# -=begin test - - require 'test/unit' - - class TCEnumerable < Test::Unit::TestCase - - def test_probability - assert_equal( {'a'=>0.5,'b'=>0.5}, %w{a b}.probability ) - assert_equal( {'tom'=>0.5,'boy'=>0.5}, %w{tom boy}.probability ) - end - - end - -=end +require 'facets/core/enumerable/probability.rb' \ No newline at end of file