ministat 1.2.1 → 1.2.5
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.
- data/History.rdoc +21 -0
 - data/Manifest.txt +9 -0
 - data/{README → README.rdoc} +15 -3
 - data/Rakefile +2 -1
 - data/lib/ministat.rb +23 -20
 - data/test/test_ministat.rb +1 -3
 - metadata +25 -16
 - data/History.txt +0 -5
 - data/pkg/ministat-1.2.0.gem +0 -0
 
    
        data/History.rdoc
    ADDED
    
    | 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            == 1.2.4 / 2010-09-18
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Version bump for packaging
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            == 1.2.2 / 2010-09-18
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            * Returned to Hoe's sweet embrace
         
     | 
| 
      
 8 
     | 
    
         
            +
            * Minor median bug fix
         
     | 
| 
      
 9 
     | 
    
         
            +
            * Cleaned up packaging stuff
         
     | 
| 
      
 10 
     | 
    
         
            +
            * Added a little to the Synopsis
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            == 1.1.*
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            * Moved most everything into MiniStat::Data
         
     | 
| 
      
 15 
     | 
    
         
            +
            * Added geometric and harmonic means
         
     | 
| 
      
 16 
     | 
    
         
            +
            * Briefly left Hoe's sweet embrace while the author suffered confusion regarding rubygems.org
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            == 1.0.0 / 2007-11-11
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            * Birthday!
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
    
        data/Manifest.txt
    ADDED
    
    
    
        data/{README → README.rdoc}
    RENAMED
    
    | 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            ministat
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            = ministat
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * http://github.com/deanh/MiniStat
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
5 
     | 
    
         
             
            == DESCRIPTION:
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
         @@ -22,11 +23,22 @@ at least to get you thinking about what it may take to do so. 
     | 
|
| 
       22 
23 
     | 
    
         
             
              require 'ministat'
         
     | 
| 
       23 
24 
     | 
    
         | 
| 
       24 
25 
     | 
    
         
             
              data = [1,2,3,4,5,6,7,7,6,5,4,4]
         
     | 
| 
      
 26 
     | 
    
         
            +
              d = MiniStat::Data.new(data) 
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              d.median             # => 4.5
         
     | 
| 
      
 29 
     | 
    
         
            +
              d.mean               # => 4.5
         
     | 
| 
      
 30 
     | 
    
         
            +
              d.mode               # => 4.0
         
     | 
| 
      
 31 
     | 
    
         
            +
              d.q1                 # => 3.5
         
     | 
| 
      
 32 
     | 
    
         
            +
              d.outliers           # => []
         
     | 
| 
      
 33 
     | 
    
         
            +
              d.std_dev            # => 1.80277563773199
         
     | 
| 
      
 34 
     | 
    
         
            +
              # and so on...
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
       25 
36 
     | 
    
         
             
              puts MiniStat::Data.new(data).to_s
         
     | 
| 
      
 37 
     | 
    
         
            +
              # this outputs most everything
         
     | 
| 
       26 
38 
     | 
    
         | 
| 
       27 
39 
     | 
    
         
             
            == REQUIREMENTS:
         
     | 
| 
       28 
40 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
               
     | 
| 
      
 41 
     | 
    
         
            +
              Hoe is your friend.
         
     | 
| 
       30 
42 
     | 
    
         | 
| 
       31 
43 
     | 
    
         
             
            == INSTALL:
         
     | 
| 
       32 
44 
     | 
    
         | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -7,9 +7,10 @@ spec = Gem::Specification.new do |p| 
     | 
|
| 
       7 
7 
     | 
    
         
             
              p.author = 'Dean Hudson'
         
     | 
| 
       8 
8 
     | 
    
         
             
              p.email = 'dean@ero.com'
         
     | 
| 
       9 
9 
     | 
    
         
             
              p.summary = 'A small and simple library to generate statistical info on single-variable datasets.'
         
     | 
| 
       10 
     | 
    
         
            -
              p.description = File.read(File.join(File.dirname(__FILE__), 'README'))
         
     | 
| 
      
 10 
     | 
    
         
            +
              p.description = File.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
         
     | 
| 
       11 
11 
     | 
    
         
             
              p.requirements = ['An eye for data and a strong will to live']
         
     | 
| 
       12 
12 
     | 
    
         
             
              p.has_rdoc = true
         
     | 
| 
       13 
13 
     | 
    
         
             
              p.files = Dir['**/**']
         
     | 
| 
       14 
14 
     | 
    
         
             
            end
         
     | 
| 
       15 
15 
     | 
    
         
             
            Rake::GemPackageTask.new(spec).define
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
    
        data/lib/ministat.rb
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'mathn'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module MiniStat
         
     | 
| 
       4 
     | 
    
         
            -
              VERSION = '1.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              VERSION = '1.2.5'
         
     | 
| 
       5 
5 
     | 
    
         
             
              class Data
         
     | 
| 
       6 
6 
     | 
    
         
             
                attr_reader :data
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
         @@ -26,10 +26,12 @@ module MiniStat 
     | 
|
| 
       26 
26 
     | 
    
         
             
                    @sort = true
         
     | 
| 
       27 
27 
     | 
    
         
             
                  end
         
     | 
| 
       28 
28 
     | 
    
         
             
                  if data.size % 2 == 0
         
     | 
| 
       29 
     | 
    
         
            -
                    return (data[data.size / 2 - 1] + data[(data.size / 2)]) / 2
         
     | 
| 
      
 29 
     | 
    
         
            +
                    return (data[data.size / 2.0 - 1] + data[(data.size / 2.0)]) / 2
         
     | 
| 
       30 
30 
     | 
    
         
             
                  else 
         
     | 
| 
       31 
     | 
    
         
            -
                    split = (data.size  
     | 
| 
       32 
     | 
    
         
            -
                     
     | 
| 
      
 31 
     | 
    
         
            +
                    # split = (data.size - 1) / 2
         
     | 
| 
      
 32 
     | 
    
         
            +
                    # this was just weird. i need to look this up
         
     | 
| 
      
 33 
     | 
    
         
            +
                    # return (data[split - 1.5] + data[split - 0.5]) / 2
         
     | 
| 
      
 34 
     | 
    
         
            +
                    return data[(data.size - 1)/2]
         
     | 
| 
       33 
35 
     | 
    
         
             
                  end
         
     | 
| 
       34 
36 
     | 
    
         
             
                end
         
     | 
| 
       35 
37 
     | 
    
         | 
| 
         @@ -82,7 +84,7 @@ module MiniStat 
     | 
|
| 
       82 
84 
     | 
    
         
             
                      @hist[val] ||= 0
         
     | 
| 
       83 
85 
     | 
    
         
             
                      @hist[val] += 1
         
     | 
| 
       84 
86 
     | 
    
         
             
                      @max_freq, @mode = @hist[val], val if @hist[val] > @max_freq
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
      
 87 
     | 
    
         
            +
                    end
         
     | 
| 
       86 
88 
     | 
    
         
             
                  end
         
     | 
| 
       87 
89 
     | 
    
         
             
                  @mode
         
     | 
| 
       88 
90 
     | 
    
         
             
                end
         
     | 
| 
         @@ -115,21 +117,22 @@ module MiniStat 
     | 
|
| 
       115 
117 
     | 
    
         
             
                end
         
     | 
| 
       116 
118 
     | 
    
         | 
| 
       117 
119 
     | 
    
         
             
                # Put the histogram into a string if we have it
         
     | 
| 
       118 
     | 
    
         
            -
                 
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
     | 
    
         
            -
             
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
     | 
    
         
            -
             
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
             
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
             
     | 
| 
       129 
     | 
    
         
            -
             
     | 
| 
       130 
     | 
    
         
            -
             
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
      
 120 
     | 
    
         
            +
                def hist
         
     | 
| 
      
 121 
     | 
    
         
            +
                  if defined? @hist
         
     | 
| 
      
 122 
     | 
    
         
            +
                    # this is a textbook example of how to lie with statistics...
         
     | 
| 
      
 123 
     | 
    
         
            +
                    # TODO: iterate over a range rather than @hist.keys--a histogram
         
     | 
| 
      
 124 
     | 
    
         
            +
                    # produced out of the keys won't properly represent flat spots
         
     | 
| 
      
 125 
     | 
    
         
            +
                    # with no data. or something like that. do as i say, not as i do.
         
     | 
| 
      
 126 
     | 
    
         
            +
                    #
         
     | 
| 
      
 127 
     | 
    
         
            +
                    # this code borrows liberally from the ruby cookbook, recipe 5.12
         
     | 
| 
      
 128 
     | 
    
         
            +
                    # ORA, 2006
         
     | 
| 
      
 129 
     | 
    
         
            +
                    pairs = @hist.keys.collect { |x| [x.to_s, @hist[x]] }.sort
         
     | 
| 
      
 130 
     | 
    
         
            +
                    largest_key_size = pairs.max {|x,y| x[0].size <=> y[0].size }[0].size
         
     | 
| 
      
 131 
     | 
    
         
            +
                    pairs.inject("") do |s,kv|
         
     | 
| 
      
 132 
     | 
    
         
            +
                    s<< "#{kv[0].ljust(largest_key_size)} |#{char*kv[1]}\n"
         
     | 
| 
      
 133 
     | 
    
         
            +
                  end
         
     | 
| 
      
 134 
     | 
    
         
            +
                  end
         
     | 
| 
      
 135 
     | 
    
         
            +
                end
         
     | 
| 
       133 
136 
     | 
    
         | 
| 
       134 
137 
     | 
    
         
             
                # Return a string with statisical info about a dataset.
         
     | 
| 
       135 
138 
     | 
    
         
             
                def to_s
         
     | 
    
        data/test/test_ministat.rb
    CHANGED
    
    | 
         @@ -4,8 +4,6 @@ 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            require 'test/unit' unless defined? $ZENTEST and $ZENTEST
         
     | 
| 
       6 
6 
     | 
    
         
             
            require 'ministat' 
         
     | 
| 
       7 
     | 
    
         
            -
            require 'rubygems'
         
     | 
| 
       8 
     | 
    
         
            -
            require 'ruby-debug'                                                      
         
     | 
| 
       9 
7 
     | 
    
         | 
| 
       10 
8 
     | 
    
         
             
            class TestMiniStat < Test::Unit::TestCase
         
     | 
| 
       11 
9 
     | 
    
         
             
              def setup
         
     | 
| 
         @@ -59,7 +57,7 @@ class TestMiniStat < Test::Unit::TestCase 
     | 
|
| 
       59 
57 
     | 
    
         
             
              def test_q1
         
     | 
| 
       60 
58 
     | 
    
         
             
                assert(@ms1.q1 - 17 < @error)   
         
     | 
| 
       61 
59 
     | 
    
         
             
                assert(@ms3.q1 - 1.05 < @error)
         
     | 
| 
       62 
     | 
    
         
            -
                assert(@ms4.q1 - -2. 
     | 
| 
      
 60 
     | 
    
         
            +
                assert(@ms4.q1 - -2.4 < @error)
         
     | 
| 
       63 
61 
     | 
    
         
             
              end
         
     | 
| 
       64 
62 
     | 
    
         | 
| 
       65 
63 
     | 
    
         
             
              def test_q3
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ministat
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash: 29
         
     | 
| 
       5 
4 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       6 
5 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
6 
     | 
    
         
             
              - 1
         
     | 
| 
       8 
7 
     | 
    
         
             
              - 2
         
     | 
| 
       9 
     | 
    
         
            -
              -  
     | 
| 
       10 
     | 
    
         
            -
              version: 1.2. 
     | 
| 
      
 8 
     | 
    
         
            +
              - 5
         
     | 
| 
      
 9 
     | 
    
         
            +
              version: 1.2.5
         
     | 
| 
       11 
10 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
11 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
12 
     | 
    
         
             
            - Dean Hudson
         
     | 
| 
         @@ -15,13 +14,14 @@ autorequire: 
     | 
|
| 
       15 
14 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       16 
15 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
16 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            date: 2010- 
     | 
| 
      
 17 
     | 
    
         
            +
            date: 2010-11-13 00:00:00 -08:00
         
     | 
| 
       19 
18 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       20 
19 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       21 
20 
     | 
    
         | 
| 
       22 
21 
     | 
    
         
             
            description: |
         
     | 
| 
       23 
     | 
    
         
            -
              ministat
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
      
 22 
     | 
    
         
            +
              = ministat
         
     | 
| 
      
 23 
     | 
    
         
            +
              
         
     | 
| 
      
 24 
     | 
    
         
            +
              * http://github.com/deanh/MiniStat
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
              == DESCRIPTION:
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
         @@ -44,11 +44,22 @@ description: | 
     | 
|
| 
       44 
44 
     | 
    
         
             
                require 'ministat'
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
46 
     | 
    
         
             
                data = [1,2,3,4,5,6,7,7,6,5,4,4]
         
     | 
| 
      
 47 
     | 
    
         
            +
                d = MiniStat::Data.new(data) 
         
     | 
| 
      
 48 
     | 
    
         
            +
              
         
     | 
| 
      
 49 
     | 
    
         
            +
                d.median             # => 4.5
         
     | 
| 
      
 50 
     | 
    
         
            +
                d.mean               # => 4.5
         
     | 
| 
      
 51 
     | 
    
         
            +
                d.mode               # => 4.0
         
     | 
| 
      
 52 
     | 
    
         
            +
                d.q1                 # => 3.5
         
     | 
| 
      
 53 
     | 
    
         
            +
                d.outliers           # => []
         
     | 
| 
      
 54 
     | 
    
         
            +
                d.std_dev            # => 1.80277563773199
         
     | 
| 
      
 55 
     | 
    
         
            +
                # and so on...
         
     | 
| 
      
 56 
     | 
    
         
            +
              
         
     | 
| 
       47 
57 
     | 
    
         
             
                puts MiniStat::Data.new(data).to_s
         
     | 
| 
      
 58 
     | 
    
         
            +
                # this outputs most everything
         
     | 
| 
       48 
59 
     | 
    
         | 
| 
       49 
60 
     | 
    
         
             
              == REQUIREMENTS:
         
     | 
| 
       50 
61 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
                 
     | 
| 
      
 62 
     | 
    
         
            +
                Hoe is your friend.
         
     | 
| 
       52 
63 
     | 
    
         | 
| 
       53 
64 
     | 
    
         
             
              == INSTALL:
         
     | 
| 
       54 
65 
     | 
    
         | 
| 
         @@ -87,15 +98,15 @@ extensions: [] 
     | 
|
| 
       87 
98 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       88 
99 
     | 
    
         | 
| 
       89 
100 
     | 
    
         
             
            files: 
         
     | 
| 
       90 
     | 
    
         
            -
            -  
     | 
| 
       91 
     | 
    
         
            -
            -  
     | 
| 
      
 101 
     | 
    
         
            +
            - bin/ministat
         
     | 
| 
      
 102 
     | 
    
         
            +
            - History.rdoc
         
     | 
| 
       92 
103 
     | 
    
         
             
            - lib/ministat.rb
         
     | 
| 
       93 
     | 
    
         
            -
            -  
     | 
| 
       94 
     | 
    
         
            -
            - test/data/2.dat
         
     | 
| 
       95 
     | 
    
         
            -
            - test/data/1.dat
         
     | 
| 
      
 104 
     | 
    
         
            +
            - Manifest.txt
         
     | 
| 
       96 
105 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       97 
     | 
    
         
            -
            - README
         
     | 
| 
       98 
     | 
    
         
            -
            -  
     | 
| 
      
 106 
     | 
    
         
            +
            - README.rdoc
         
     | 
| 
      
 107 
     | 
    
         
            +
            - test/data/1.dat
         
     | 
| 
      
 108 
     | 
    
         
            +
            - test/data/2.dat
         
     | 
| 
      
 109 
     | 
    
         
            +
            - test/test_ministat.rb
         
     | 
| 
       99 
110 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
       100 
111 
     | 
    
         
             
            homepage: 
         
     | 
| 
       101 
112 
     | 
    
         
             
            licenses: []
         
     | 
| 
         @@ -110,7 +121,6 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       110 
121 
     | 
    
         
             
              requirements: 
         
     | 
| 
       111 
122 
     | 
    
         
             
              - - ">="
         
     | 
| 
       112 
123 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
       113 
     | 
    
         
            -
                  hash: 3
         
     | 
| 
       114 
124 
     | 
    
         
             
                  segments: 
         
     | 
| 
       115 
125 
     | 
    
         
             
                  - 0
         
     | 
| 
       116 
126 
     | 
    
         
             
                  version: "0"
         
     | 
| 
         @@ -119,7 +129,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       119 
129 
     | 
    
         
             
              requirements: 
         
     | 
| 
       120 
130 
     | 
    
         
             
              - - ">="
         
     | 
| 
       121 
131 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
       122 
     | 
    
         
            -
                  hash: 3
         
     | 
| 
       123 
132 
     | 
    
         
             
                  segments: 
         
     | 
| 
       124 
133 
     | 
    
         
             
                  - 0
         
     | 
| 
       125 
134 
     | 
    
         
             
                  version: "0"
         
     | 
    
        data/History.txt
    DELETED
    
    
    
        data/pkg/ministat-1.2.0.gem
    DELETED
    
    | 
         Binary file 
     |