zipfian 0.0.1 → 0.0.2

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/README.md CHANGED
@@ -23,11 +23,15 @@ Or install it yourself as:
23
23
  # 1.0: Exponent
24
24
  z = Zipfian.new 1000, 1.0
25
25
 
26
+ puts z.n # 1000
27
+ puts z.s # 0.1
28
+
26
29
  (1..1000).each do |i|
27
30
  puts [z.pmf(i), z.cdf(i)].join ' - '
28
31
  end
29
32
 
30
- puts z.sample
33
+ puts z.sample # Integer between 1 and 1000
34
+
31
35
  ```
32
36
 
33
37
  ## Disclaimer
@@ -1,3 +1,3 @@
1
1
  class Zipfian
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/zipfian.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require "zipfian/version"
2
2
 
3
3
  class Zipfian
4
+ attr_reader :n, :s
5
+
4
6
  def initialize n, s
5
7
  unless n > 0 && n.is_a?(Integer)
6
8
  raise ArgumentError.new("Number of elements must be a positive integer")
data/test/test_zipfian.rb CHANGED
@@ -17,6 +17,12 @@ class TestZipfian < Test::Unit::TestCase
17
17
  assert_raise(ArgumentError) { z = Zipfian.new 100, -1 }
18
18
  end
19
19
 
20
+ def test_s_n
21
+ z = Zipfian.new 1000, 0.1
22
+ assert_equal 1000, z.n
23
+ assert_equal 0.1, z.s
24
+ end
25
+
20
26
  def test_invalid_rank
21
27
  z = Zipfian.new 1000, 0.1
22
28
 
@@ -29,12 +35,11 @@ class TestZipfian < Test::Unit::TestCase
29
35
  def test_pmf_cdf
30
36
  z = Zipfian.new 1000, 1
31
37
 
32
- sum = 0
33
- (1..1000).each do |i|
34
- assert z.pmf(i) <= z.cdf(i)
35
- assert z.pmf(i) < z.pmf(i - 1) if i > 1
36
- end
37
38
  assert_equal z.pmf(1), z.cdf(1)
39
+ (2..1000).each do |i|
40
+ assert z.pmf(i) < z.cdf(i)
41
+ assert z.pmf(i) < z.pmf(i - 1)
42
+ end
38
43
  assert_equal 1, z.cdf(1000)
39
44
  end
40
45
 
metadata CHANGED
@@ -1,56 +1,74 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: zipfian
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Junegunn Choi
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-05-03 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-05-04 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: test-unit
16
- requirement: &2153866200 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
22
32
  type: :development
23
- prerelease: false
24
- version_requirements: *2153866200
25
- - !ruby/object:Gem::Dependency
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
26
35
  name: guard
27
- requirement: &2153865760 !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
28
38
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
33
46
  type: :development
34
- prerelease: false
35
- version_requirements: *2153865760
36
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
37
49
  name: guard-test
38
- requirement: &2153865340 !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
39
52
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
44
60
  type: :development
45
- prerelease: false
46
- version_requirements: *2153865340
61
+ version_requirements: *id003
47
62
  description: Zipfian distribution
48
- email:
63
+ email:
49
64
  - junegunn.c@gmail.com
50
65
  executables: []
66
+
51
67
  extensions: []
68
+
52
69
  extra_rdoc_files: []
53
- files:
70
+
71
+ files:
54
72
  - .gitignore
55
73
  - Gemfile
56
74
  - Guardfile
@@ -63,27 +81,36 @@ files:
63
81
  - zipfian.gemspec
64
82
  homepage: https://github.com/junegunn/zipfian
65
83
  licenses: []
84
+
66
85
  post_install_message:
67
86
  rdoc_options: []
68
- require_paths:
87
+
88
+ require_paths:
69
89
  - lib
70
- required_ruby_version: !ruby/object:Gem::Requirement
90
+ required_ruby_version: !ruby/object:Gem::Requirement
71
91
  none: false
72
- requirements:
73
- - - ! '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ hash: 3
96
+ segments:
97
+ - 0
98
+ version: "0"
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
100
  none: false
78
- requirements:
79
- - - ! '>='
80
- - !ruby/object:Gem::Version
81
- version: '0'
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
107
+ version: "0"
82
108
  requirements: []
109
+
83
110
  rubyforge_project:
84
- rubygems_version: 1.8.11
111
+ rubygems_version: 1.8.21
85
112
  signing_key:
86
113
  specification_version: 3
87
114
  summary: Zipfian distribution
88
- test_files:
115
+ test_files:
89
116
  - test/test_zipfian.rb