games_dice 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,10 +8,10 @@
8
8
  #endif
9
9
 
10
10
  // Force inclusion of hash declarations (only MRI includes by default)
11
- #if RJB_RUBY_VERSION_CODE < 190
12
- #include "st.h"
13
- #else
11
+ #ifdef HAVE_RUBY_ST_H
14
12
  #include "ruby/st.h"
13
+ #else
14
+ #include "st.h"
15
15
  #endif
16
16
 
17
17
  VALUE Probabilities = Qnil;
@@ -230,7 +230,7 @@ static ProbabilityList *pl_add_distributions_mult( int mul_a, ProbabilityList *p
230
230
  int i,j;
231
231
  for ( i=0; i < pl_a->slots; i++ ) { for ( j=0; j < pl_b->slots; j++ ) {
232
232
  int k = mul_a * (i + pl_a->offset) + mul_b * (j + pl_b->offset) - combined_min;
233
- pr[ i + j ] += (pl_a->probs)[i] * (pl_b->probs)[j];
233
+ pr[ k ] += (pl_a->probs)[i] * (pl_b->probs)[j];
234
234
  } }
235
235
  calc_cumulative( pl );
236
236
  return pl;
data/games_dice.gemspec CHANGED
@@ -16,7 +16,14 @@ Gem::Specification.new do |gem|
16
16
  gem.add_development_dependency "rspec", ">= 2.13.0"
17
17
  gem.add_development_dependency "rake", ">= 1.9.1"
18
18
  gem.add_development_dependency "yard", ">= 0.8.6"
19
- gem.add_development_dependency "redcarpet", ">=2.3.0"
19
+
20
+ if RUBY_VERSION < "1.9.0"
21
+ # Red Carpet v3.0.0 does not compile for 1.8.7
22
+ gem.add_development_dependency "redcarpet", ">=2.3.0", "<3.0.0"
23
+ else
24
+ gem.add_development_dependency "redcarpet", ">=2.3.0"
25
+ end
26
+
20
27
  gem.add_development_dependency "rake-compiler"
21
28
 
22
29
  gem.add_dependency "parslet", ">= 1.5.0"
@@ -1,3 +1,3 @@
1
1
  module GamesDice
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -78,6 +78,18 @@ describe GamesDice::Probabilities do
78
78
  h[4].should be_within(1e-9).of 2.0/24
79
79
  h[5].should be_within(1e-9).of 1.0/24
80
80
  end
81
+
82
+ it "should add asymmetric distributions accurately" do
83
+ da = GamesDice::Probabilities.new( [0.7,0.0,0.3], 2 )
84
+ db = GamesDice::Probabilities.new( [0.5,0.3,0.2], 2 )
85
+ pr = GamesDice::Probabilities.add_distributions_mult( 1, da, 2, db )
86
+ h = pr.to_h
87
+ h.should be_valid_distribution
88
+ h[6].should be_within(1e-9).of 0.7 * 0.5
89
+ h[8].should be_within(1e-9).of 0.7 * 0.3 + 0.3 * 0.5
90
+ h[10].should be_within(1e-9).of 0.7 * 0.2 + 0.3 * 0.3
91
+ h[12].should be_within(1e-9).of 0.3 * 0.2
92
+ end
81
93
  end
82
94
 
83
95
  describe "#from_h" do
metadata CHANGED
@@ -1,121 +1,134 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: games_dice
3
- version: !ruby/object:Gem::Version
4
- version: 0.3.2
3
+ version: !ruby/object:Gem::Version
4
+ hash: 21
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 3
10
+ version: 0.3.3
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Neil Slater
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2013-07-10 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-07-11 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: rspec
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: 2.13.0
22
- type: :development
23
22
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 59
29
+ segments:
30
+ - 2
31
+ - 13
32
+ - 0
29
33
  version: 2.13.0
30
- - !ruby/object:Gem::Dependency
31
- name: rake
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: 1.9.1
38
34
  type: :development
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
39
38
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
39
+ requirement: &id002 !ruby/object:Gem::Requirement
41
40
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 49
45
+ segments:
46
+ - 1
47
+ - 9
48
+ - 1
45
49
  version: 1.9.1
46
- - !ruby/object:Gem::Dependency
47
- name: yard
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: 0.8.6
54
50
  type: :development
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: yard
55
54
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
57
56
  none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 51
61
+ segments:
62
+ - 0
63
+ - 8
64
+ - 6
61
65
  version: 0.8.6
62
- - !ruby/object:Gem::Dependency
63
- name: redcarpet
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: 2.3.0
70
66
  type: :development
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
69
+ name: redcarpet
71
70
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
71
+ requirement: &id004 !ruby/object:Gem::Requirement
73
72
  none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 2
79
+ - 3
80
+ - 0
77
81
  version: 2.3.0
78
- - !ruby/object:Gem::Dependency
79
- name: rake-compiler
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
82
+ - - <
83
+ - !ruby/object:Gem::Version
84
+ hash: 7
85
+ segments:
86
+ - 3
87
+ - 0
88
+ - 0
89
+ version: 3.0.0
86
90
  type: :development
91
+ version_requirements: *id004
92
+ - !ruby/object:Gem::Dependency
93
+ name: rake-compiler
87
94
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
95
+ requirement: &id005 !ruby/object:Gem::Requirement
89
96
  none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
- - !ruby/object:Gem::Dependency
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
103
+ version: "0"
104
+ type: :development
105
+ version_requirements: *id005
106
+ - !ruby/object:Gem::Dependency
95
107
  name: parslet
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: 1.5.0
102
- type: :runtime
103
108
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
109
+ requirement: &id006 !ruby/object:Gem::Requirement
105
110
  none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ hash: 3
115
+ segments:
116
+ - 1
117
+ - 5
118
+ - 0
109
119
  version: 1.5.0
110
- description: A library for simulating dice. Use it to construct dice-rolling systems
111
- used in role-playing and board games.
112
- email:
120
+ type: :runtime
121
+ version_requirements: *id006
122
+ description: A library for simulating dice. Use it to construct dice-rolling systems used in role-playing and board games.
123
+ email:
113
124
  - slobo777@gmail.com
114
125
  executables: []
115
- extensions:
126
+
127
+ extensions:
116
128
  - ext/games_dice/extconf.rb
117
129
  extra_rdoc_files: []
118
- files:
130
+
131
+ files:
119
132
  - .gitignore
120
133
  - .travis.yml
121
134
  - Gemfile
@@ -152,36 +165,38 @@ files:
152
165
  - spec/reroll_rule_spec.rb
153
166
  homepage: https://github.com/neilslater/games_dice
154
167
  licenses: []
168
+
155
169
  post_install_message:
156
170
  rdoc_options: []
157
- require_paths:
171
+
172
+ require_paths:
158
173
  - lib
159
- required_ruby_version: !ruby/object:Gem::Requirement
174
+ required_ruby_version: !ruby/object:Gem::Requirement
160
175
  none: false
161
- requirements:
162
- - - ! '>='
163
- - !ruby/object:Gem::Version
164
- version: '0'
165
- segments:
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ hash: 3
180
+ segments:
166
181
  - 0
167
- hash: -551610733776225625
168
- required_rubygems_version: !ruby/object:Gem::Requirement
182
+ version: "0"
183
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
184
  none: false
170
- requirements:
171
- - - ! '>='
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- segments:
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ hash: 3
189
+ segments:
175
190
  - 0
176
- hash: -551610733776225625
191
+ version: "0"
177
192
  requirements: []
193
+
178
194
  rubyforge_project:
179
195
  rubygems_version: 1.8.24
180
196
  signing_key:
181
197
  specification_version: 3
182
- summary: Simulates and explains dice rolls from simple "1d6" to complex "roll 7 ten-sided
183
- dice, take best 3, results of 10 roll again and add on".
184
- test_files:
198
+ summary: Simulates and explains dice rolls from simple "1d6" to complex "roll 7 ten-sided dice, take best 3, results of 10 roll again and add on".
199
+ test_files:
185
200
  - spec/bunch_spec.rb
186
201
  - spec/complex_die_spec.rb
187
202
  - spec/dice_spec.rb