croupier 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -84,6 +84,13 @@ To get a list of all available distributions/methods in Distributions module cal
84
84
 
85
85
  Croupier::Distributions.list
86
86
 
87
+ Since 1.6.0, distributions have a ```to_enum``` method that return an (infinity) enumerator, so you
88
+ can use any Enumerable method on it:
89
+
90
+ dist = Croupier::Distributions.exponential(:lambda => 17).to_enum
91
+ dist.each_slice(2).take(3)
92
+ => [[0.7455570432863594, 1.6543154039789472], [4.261950709816685, 0.2860058032480469], [1.4761279576207826, 0.6433699882662834]]
93
+
87
94
  ## How to generate a new distribution.
88
95
 
89
96
  There are several ways. The easiest one is to override ```generate_number``` or ```generate_sample``` (one is enough).
@@ -68,6 +68,14 @@ module Croupier
68
68
  def self.cli_name
69
69
  ''
70
70
  end
71
+
72
+ def to_enum
73
+ Enumerator.new do |y|
74
+ loop do
75
+ y << generate_number
76
+ end
77
+ end
78
+ end
71
79
  end
72
80
 
73
81
  end
@@ -1,3 +1,3 @@
1
1
  module Croupier
2
- VERSION = "1.5.0"
2
+ VERSION = "1.6.0"
3
3
  end
@@ -14,4 +14,10 @@ class TestDistributionClass < MiniTest::Unit::TestCase
14
14
  assert_equal 5.34, dist.generate_number
15
15
  end
16
16
  end
17
+
18
+ def test_to_enum
19
+ enum = Croupier::Distributions::Degenerate.new(constant: 5).to_enum
20
+ assert_kind_of Enumerator, enum
21
+ assert_equal [5,5,5], enum.take(3)
22
+ end
17
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: croupier
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-05-25 00:00:00.000000000 Z
13
+ date: 2013-07-24 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: Croupier is a Ruby gem to generate a random sample of numbers with a
16
16
  given probability distribution.
@@ -75,13 +75,13 @@ require_paths:
75
75
  required_ruby_version: !ruby/object:Gem::Requirement
76
76
  none: false
77
77
  requirements:
78
- - - '>='
78
+ - - ! '>='
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  required_rubygems_version: !ruby/object:Gem::Requirement
82
82
  none: false
83
83
  requirements:
84
- - - '>='
84
+ - - ! '>='
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
87
  requirements: []