zipfian 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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