acpc_poker_types 6.2.3 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/lib/acpc_poker_types.rb +2 -2
  3. data/lib/acpc_poker_types/dealer_data.rb +9 -0
  4. data/lib/acpc_poker_types/{acpc_dealer_data → dealer_data}/action_messages.rb +10 -10
  5. data/lib/acpc_poker_types/{acpc_dealer_data → dealer_data}/hand_data.rb +4 -4
  6. data/lib/acpc_poker_types/{acpc_dealer_data → dealer_data}/hand_results.rb +8 -8
  7. data/lib/acpc_poker_types/{acpc_dealer_data → dealer_data}/log_file.rb +1 -1
  8. data/lib/acpc_poker_types/{acpc_dealer_data → dealer_data}/match_definition.rb +1 -1
  9. data/lib/acpc_poker_types/{acpc_dealer_data → dealer_data}/poker_match_data.rb +44 -56
  10. data/lib/acpc_poker_types/{player_group.rb → hand_player_group.rb} +1 -1
  11. data/lib/acpc_poker_types/match_state.rb +11 -8
  12. data/lib/acpc_poker_types/player.rb +50 -0
  13. data/lib/acpc_poker_types/players_at_the_table.rb +168 -0
  14. data/lib/acpc_poker_types/version.rb +1 -1
  15. data/spec/{action_messages_spec.rb → dealer_data/action_messages_spec.rb} +60 -61
  16. data/spec/{hand_data_spec.rb → dealer_data/hand_data_spec.rb} +26 -27
  17. data/spec/{hand_results_spec.rb → dealer_data/hand_results_spec.rb} +17 -18
  18. data/spec/{match_definition_spec.rb → dealer_data/match_definition_spec.rb} +10 -11
  19. data/spec/{poker_match_data_spec.rb → dealer_data/poker_match_data_spec.rb} +48 -7
  20. data/spec/{player_group_spec.rb → hand_player_group_spec.rb} +3 -10
  21. data/spec/hand_player_spec.rb +1 -1
  22. data/spec/match_state_spec.rb +118 -76
  23. data/spec/player_spec.rb +45 -0
  24. data/spec/players_at_the_table_spec.rb +133 -0
  25. metadata +60 -136
  26. data/lib/acpc_poker_types/acpc_dealer_data.rb +0 -9
  27. data/spec/coverage/assets/0.7.1/application.css +0 -1110
  28. data/spec/coverage/assets/0.7.1/application.js +0 -626
  29. data/spec/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  30. data/spec/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  31. data/spec/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  32. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  33. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  34. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  35. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  36. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  37. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  38. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  39. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  40. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  41. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  42. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  43. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  44. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  45. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  46. data/spec/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  47. data/spec/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  48. data/spec/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  49. data/spec/coverage/assets/0.7.1/favicon_green.png +0 -0
  50. data/spec/coverage/assets/0.7.1/favicon_red.png +0 -0
  51. data/spec/coverage/assets/0.7.1/favicon_yellow.png +0 -0
  52. data/spec/coverage/assets/0.7.1/loading.gif +0 -0
  53. data/spec/coverage/assets/0.7.1/magnify.png +0 -0
  54. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  55. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  56. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  57. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  58. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  59. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  60. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  61. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  62. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
  63. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  64. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
  65. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
  66. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  67. data/spec/coverage/index.html +0 -72
@@ -1,6 +1,5 @@
1
-
2
1
  # Spec helper (must include first to track code coverage with SimpleCov)
3
- require_relative 'support/spec_helper'
2
+ require_relative '../support/spec_helper'
4
3
 
5
4
  require 'mocha/setup'
6
5
 
@@ -8,12 +7,12 @@ require 'acpc_dealer'
8
7
  require 'acpc_poker_types/match_state'
9
8
  require 'acpc_poker_types/poker_action'
10
9
 
11
- require 'acpc_poker_types/acpc_dealer_data/action_messages'
12
- require 'acpc_poker_types/acpc_dealer_data/hand_data'
13
- require 'acpc_poker_types/acpc_dealer_data/hand_results'
14
- require 'acpc_poker_types/acpc_dealer_data/match_definition'
10
+ require 'acpc_poker_types/dealer_data/action_messages'
11
+ require 'acpc_poker_types/dealer_data/hand_data'
12
+ require 'acpc_poker_types/dealer_data/hand_results'
13
+ require 'acpc_poker_types/dealer_data/match_definition'
15
14
 
16
- describe AcpcPokerTypes::AcpcDealerData::HandData do
15
+ describe AcpcPokerTypes::DealerData::HandData do
17
16
  before do
18
17
  @patient = nil
19
18
  @chip_distribution = nil
@@ -32,19 +31,19 @@ describe AcpcPokerTypes::AcpcDealerData::HandData do
32
31
  it 'if the given action data does not have the proper format' do
33
32
  init_data do |action_data, result|
34
33
  ->() do
35
- @patient = AcpcPokerTypes::AcpcDealerData::HandData.new(
34
+ @patient = AcpcPokerTypes::DealerData::HandData.new(
36
35
  @match_def,
37
36
  (action_data.data.first + [action_data.data.first.last]).flatten,
38
37
  result.data.first
39
38
  )
40
- end.must_raise AcpcPokerTypes::AcpcDealerData::HandData::InvalidData
39
+ end.must_raise AcpcPokerTypes::DealerData::HandData::InvalidData
41
40
  end
42
41
  end
43
42
  end
44
43
 
45
44
  it 'reports the chip distribution for every seat' do
46
45
  init_data do |action_data, result|
47
- @patient = AcpcPokerTypes::AcpcDealerData::HandData.new @match_def, action_data.data.first, result.data.first
46
+ @patient = AcpcPokerTypes::DealerData::HandData.new @match_def, action_data.data.first, result.data.first
48
47
 
49
48
  check_patient
50
49
  end
@@ -61,7 +60,7 @@ describe AcpcPokerTypes::AcpcDealerData::HandData do
61
60
  @last_action = nil
62
61
  @next_action = nil
63
62
 
64
- @patient = AcpcPokerTypes::AcpcDealerData::HandData.new @match_def, action_data.data.first, result.data.first
63
+ @patient = AcpcPokerTypes::DealerData::HandData.new @match_def, action_data.data.first, result.data.first
65
64
 
66
65
  @turn_number = 0
67
66
  @patient.for_every_turn!(@seat) do
@@ -98,12 +97,12 @@ describe AcpcPokerTypes::AcpcDealerData::HandData do
98
97
  data.each do |game, data_hash|
99
98
  @chip_distribution = data_hash[:chip_distribution]
100
99
  @turn_data = data_hash[:turn_data]
101
- @action_data = AcpcPokerTypes::AcpcDealerData::ActionMessages.parse(
100
+ @action_data = AcpcPokerTypes::DealerData::ActionMessages.parse(
102
101
  data_hash[:action_messages],
103
102
  data_hash[:player_names],
104
103
  AcpcDealer::DEALER_DIRECTORY
105
104
  )
106
- @hand_result = AcpcPokerTypes::AcpcDealerData::HandResults.parse(
105
+ @hand_result = AcpcPokerTypes::DealerData::HandResults.parse(
107
106
  data_hash[:result_message],
108
107
  data_hash[:player_names],
109
108
  AcpcDealer::DEALER_DIRECTORY
@@ -137,29 +136,29 @@ describe AcpcPokerTypes::AcpcDealerData::HandData do
137
136
  chip_distribution: [60, -60],
138
137
  player_names: ['p1', 'p2'],
139
138
  turn_data: [
140
- AcpcPokerTypes::AcpcDealerData::HandData::Turn.new(
139
+ AcpcPokerTypes::DealerData::HandData::Turn.new(
141
140
  [
142
141
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:crc/cc/cc/:|TdQd/As6d6h/7h/4s'),
143
142
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999:crc/cc/cc/:Jc8d|/As6d6h/7h/4s')
144
143
  ],
145
- AcpcPokerTypes::AcpcDealerData::ActionMessages::FromMessage.new(
144
+ AcpcPokerTypes::DealerData::ActionMessages::FromMessage.new(
146
145
  1,
147
146
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999:crc/cc/cc/:Jc8d|/As6d6h/7h/4s'),
148
147
  AcpcPokerTypes::PokerAction.new('r')
149
148
  )
150
149
  ),
151
- AcpcPokerTypes::AcpcDealerData::HandData::Turn.new(
150
+ AcpcPokerTypes::DealerData::HandData::Turn.new(
152
151
  [
153
152
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:crc/cc/cc/r:|TdQd/As6d6h/7h/4s'),
154
153
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999:crc/cc/cc/r:Jc8d|/As6d6h/7h/4s')
155
154
  ],
156
- AcpcPokerTypes::AcpcDealerData::ActionMessages::FromMessage.new(
155
+ AcpcPokerTypes::DealerData::ActionMessages::FromMessage.new(
157
156
  0,
158
157
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:crc/cc/cc/r:|TdQd/As6d6h/7h/4s'),
159
158
  AcpcPokerTypes::PokerAction.new('c')
160
159
  )
161
160
  ),
162
- AcpcPokerTypes::AcpcDealerData::HandData::Turn.new(
161
+ AcpcPokerTypes::DealerData::HandData::Turn.new(
163
162
  [
164
163
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:crc/cc/cc/rc:Jc8d|TdQd/As6d6h/7h/4s'),
165
164
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999:crc/cc/cc/rc:Jc8d|TdQd/As6d6h/7h/4s')
@@ -186,18 +185,18 @@ describe AcpcPokerTypes::AcpcDealerData::HandData do
186
185
  chip_distribution: [19718, -19718],
187
186
  player_names: ['p1', 'p2'],
188
187
  turn_data: [
189
- AcpcPokerTypes::AcpcDealerData::HandData::Turn.new(
188
+ AcpcPokerTypes::DealerData::HandData::Turn.new(
190
189
  [
191
190
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999::|TdQd'),
192
191
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999::Jc8d|')
193
192
  ],
194
- AcpcPokerTypes::AcpcDealerData::ActionMessages::FromMessage.new(
193
+ AcpcPokerTypes::DealerData::ActionMessages::FromMessage.new(
195
194
  0,
196
195
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999::|TdQd'),
197
196
  AcpcPokerTypes::PokerAction.new('f')
198
197
  )
199
198
  ),
200
- AcpcPokerTypes::AcpcDealerData::HandData::Turn.new(
199
+ AcpcPokerTypes::DealerData::HandData::Turn.new(
201
200
  [
202
201
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:f:|TdQd'),
203
202
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999:f:Jc8d|')
@@ -226,19 +225,19 @@ describe AcpcPokerTypes::AcpcDealerData::HandData do
226
225
  chip_distribution: [360, -190, -170],
227
226
  player_names: ['p1', 'p2', 'p3'],
228
227
  turn_data: [
229
- AcpcPokerTypes::AcpcDealerData::HandData::Turn.new(
228
+ AcpcPokerTypes::DealerData::HandData::Turn.new(
230
229
  [
231
230
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999:ccc/ccc/rrcc/rrrfr:QsAs||/4d6d2d/5d/2c'),
232
231
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:ccc/ccc/rrcc/rrrfr:|3s8h|/4d6d2d/5d/2c'),
233
232
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:2:999:ccc/ccc/rrcc/rrrfr:||Qd3c/4d6d2d/5d/2c')
234
233
  ],
235
- AcpcPokerTypes::AcpcDealerData::ActionMessages::FromMessage.new(
234
+ AcpcPokerTypes::DealerData::ActionMessages::FromMessage.new(
236
235
  2,
237
236
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:2:999:ccc/ccc/rrcc/rrrfr:||Qd3c/4d6d2d/5d/2c'),
238
237
  AcpcPokerTypes::PokerAction.new('c')
239
238
  )
240
239
  ),
241
- AcpcPokerTypes::AcpcDealerData::HandData::Turn.new(
240
+ AcpcPokerTypes::DealerData::HandData::Turn.new(
242
241
  [
243
242
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999:ccc/ccc/rrcc/rrrfrc:QsAs|3s8h|Qd3c/4d6d2d/5d/2c'),
244
243
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:ccc/ccc/rrcc/rrrfrc:|3s8h|Qd3c/4d6d2d/5d/2c'),
@@ -268,19 +267,19 @@ describe AcpcPokerTypes::AcpcDealerData::HandData do
268
267
  chip_distribution: [40000, -20000, -20000],
269
268
  player_names: ['p1', 'p2', 'p3'],
270
269
  turn_data: [
271
- AcpcPokerTypes::AcpcDealerData::HandData::Turn.new(
270
+ AcpcPokerTypes::DealerData::HandData::Turn.new(
272
271
  [
273
272
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999:ccr12926r20000c:QsAs||'),
274
273
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:ccr12926r20000c:|3s8h|'),
275
274
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:2:999:ccr12926r20000c:||Qd3c')
276
275
  ],
277
- AcpcPokerTypes::AcpcDealerData::ActionMessages::FromMessage.new(
276
+ AcpcPokerTypes::DealerData::ActionMessages::FromMessage.new(
278
277
  1,
279
278
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:ccr12926r20000c:|3s8h|'),
280
279
  AcpcPokerTypes::PokerAction.new('c')
281
280
  )
282
281
  ),
283
- AcpcPokerTypes::AcpcDealerData::HandData::Turn.new(
282
+ AcpcPokerTypes::DealerData::HandData::Turn.new(
284
283
  [
285
284
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:0:999:ccr12926r20000cc///:QsAs|3s8h|Qd3c/4d6d2d/5d/2c'),
286
285
  AcpcPokerTypes::MatchState.parse('MATCHSTATE:1:999:ccr12926r20000cc///:QsAs|3s8h|Qd3c/4d6d2d/5d/2c'),
@@ -1,15 +1,14 @@
1
-
2
1
  # Spec helper (must include first to track code coverage with SimpleCov)
3
- require_relative 'support/spec_helper'
2
+ require_relative '../support/spec_helper'
4
3
 
5
4
  require 'mocha/setup'
6
5
 
7
6
  require 'acpc_dealer'
8
7
 
9
- require 'acpc_poker_types/acpc_dealer_data/hand_results'
10
- require 'acpc_poker_types/acpc_dealer_data/match_definition'
8
+ require 'acpc_poker_types/dealer_data/hand_results'
9
+ require 'acpc_poker_types/dealer_data/match_definition'
11
10
 
12
- describe AcpcPokerTypes::AcpcDealerData::HandResults do
11
+ describe AcpcPokerTypes::DealerData::HandResults do
13
12
  before do
14
13
  @patient = nil
15
14
  @data = nil
@@ -32,12 +31,12 @@ describe AcpcPokerTypes::AcpcDealerData::HandResults do
32
31
  {p1: -20000, p2: -20000, p3: 40000}
33
32
  ].each do |state_to_player_results|
34
33
  state_to_player_results.each do |state_string, expected_values|
35
- AcpcPokerTypes::AcpcDealerData::HandResults.parse_state(state_string).must_equal expected_values
34
+ AcpcPokerTypes::DealerData::HandResults.parse_state(state_string).must_equal expected_values
36
35
  end
37
36
  end
38
37
  end
39
38
  it 'returns nil if asked to parse an improperly formatted string' do
40
- AcpcPokerTypes::AcpcDealerData::HandResults.parse_state("improperly formatted string").must_be_nil
39
+ AcpcPokerTypes::DealerData::HandResults.parse_state("improperly formatted string").must_be_nil
41
40
  end
42
41
  end
43
42
  describe '::parse_score' do
@@ -47,12 +46,12 @@ describe AcpcPokerTypes::AcpcDealerData::HandResults do
47
46
  'SCORE:19835|621.5|-20455.5:p1|p2|p3' => {p1: 19835, p2: 621.5, p3: -20455.5}
48
47
  ].each do |score_to_player_results|
49
48
  score_to_player_results.each do |score_string, expected_values|
50
- AcpcPokerTypes::AcpcDealerData::HandResults.parse_score(score_string).must_equal expected_values
49
+ AcpcPokerTypes::DealerData::HandResults.parse_score(score_string).must_equal expected_values
51
50
  end
52
51
  end
53
52
  end
54
53
  it 'returns nil if asked to parse an improperly formatted string' do
55
- AcpcPokerTypes::AcpcDealerData::HandResults.parse_score("improperly formatted string").must_be_nil
54
+ AcpcPokerTypes::DealerData::HandResults.parse_score("improperly formatted string").must_be_nil
56
55
  end
57
56
  end
58
57
 
@@ -61,17 +60,17 @@ describe AcpcPokerTypes::AcpcDealerData::HandResults do
61
60
  it 'when every hand is desired' do
62
61
  init_data do |log_statements|
63
62
  file_name = 'file_name'
64
- AcpcPokerTypes::AcpcDealerData::LogFile.stubs(:open).with(file_name, 'r').yields(
63
+ AcpcPokerTypes::DealerData::LogFile.stubs(:open).with(file_name, 'r').yields(
65
64
  log_statements
66
65
  ).returns(
67
- AcpcPokerTypes::AcpcDealerData::HandResults.parse(
66
+ AcpcPokerTypes::DealerData::HandResults.parse(
68
67
  log_statements,
69
68
  @player_names,
70
69
  AcpcDealer::DEALER_DIRECTORY
71
70
  )
72
71
  )
73
72
 
74
- @patient = AcpcPokerTypes::AcpcDealerData::HandResults.parse_file(
73
+ @patient = AcpcPokerTypes::DealerData::HandResults.parse_file(
75
74
  file_name,
76
75
  @player_names,
77
76
  AcpcDealer::DEALER_DIRECTORY
@@ -85,10 +84,10 @@ describe AcpcPokerTypes::AcpcDealerData::HandResults do
85
84
  num_hands = 3
86
85
  init_data do |log_statements|
87
86
  file_name = 'file_name'
88
- AcpcPokerTypes::AcpcDealerData::LogFile.stubs(:open).with(file_name, 'r').yields(
87
+ AcpcPokerTypes::DealerData::LogFile.stubs(:open).with(file_name, 'r').yields(
89
88
  log_statements
90
89
  ).returns(
91
- AcpcPokerTypes::AcpcDealerData::HandResults.parse(
90
+ AcpcPokerTypes::DealerData::HandResults.parse(
92
91
  log_statements,
93
92
  @player_names,
94
93
  AcpcDealer::DEALER_DIRECTORY,
@@ -96,7 +95,7 @@ describe AcpcPokerTypes::AcpcDealerData::HandResults do
96
95
  )
97
96
  )
98
97
 
99
- @patient = AcpcPokerTypes::AcpcDealerData::HandResults.parse_file(
98
+ @patient = AcpcPokerTypes::DealerData::HandResults.parse_file(
100
99
  file_name,
101
100
  @player_names,
102
101
  AcpcDealer::DEALER_DIRECTORY,
@@ -114,7 +113,7 @@ describe AcpcPokerTypes::AcpcDealerData::HandResults do
114
113
  describe 'from array' do
115
114
  it 'when every hand is desired' do
116
115
  init_data do |log_statements|
117
- @patient = AcpcPokerTypes::AcpcDealerData::HandResults.parse(
116
+ @patient = AcpcPokerTypes::DealerData::HandResults.parse(
118
117
  log_statements,
119
118
  @player_names,
120
119
  AcpcDealer::DEALER_DIRECTORY
@@ -127,7 +126,7 @@ describe AcpcPokerTypes::AcpcDealerData::HandResults do
127
126
  @no_final_score = true
128
127
  num_hands = 3
129
128
  init_data do |log_statements|
130
- @patient = AcpcPokerTypes::AcpcDealerData::HandResults.parse(
129
+ @patient = AcpcPokerTypes::DealerData::HandResults.parse(
131
130
  log_statements,
132
131
  @player_names,
133
132
  AcpcDealer::DEALER_DIRECTORY,
@@ -155,7 +154,7 @@ describe AcpcPokerTypes::AcpcDealerData::HandResults do
155
154
  @final_score = data_hash[:final_score]
156
155
  @data = data_hash[:data]
157
156
  @player_names = data_hash[:player_names]
158
- @match_def = AcpcPokerTypes::AcpcDealerData::MatchDefinition.parse(
157
+ @match_def = AcpcPokerTypes::DealerData::MatchDefinition.parse(
159
158
  data_hash[:log_statements].first,
160
159
  @player_names,
161
160
  AcpcDealer::DEALER_DIRECTORY
@@ -1,13 +1,12 @@
1
-
2
1
  # Spec helper (must include first to track code coverage with SimpleCov)
3
- require_relative 'support/spec_helper'
2
+ require_relative '../support/spec_helper'
4
3
 
5
4
  require 'acpc_poker_types/game_definition'
6
5
  require 'acpc_dealer'
7
6
 
8
- require 'acpc_poker_types/acpc_dealer_data/match_definition'
7
+ require 'acpc_poker_types/dealer_data/match_definition'
9
8
 
10
- describe AcpcPokerTypes::AcpcDealerData::MatchDefinition do
9
+ describe AcpcPokerTypes::DealerData::MatchDefinition do
11
10
  before do
12
11
  @name = nil
13
12
  @game_def = nil
@@ -20,31 +19,31 @@ describe AcpcPokerTypes::AcpcDealerData::MatchDefinition do
20
19
  it 'raises an exception if the number of player names does not match the number of players' do
21
20
  init_components do
22
21
  ->() do
23
- @patient = AcpcPokerTypes::AcpcDealerData::MatchDefinition.new(
22
+ @patient = AcpcPokerTypes::DealerData::MatchDefinition.new(
24
23
  @name,
25
24
  @game_def,
26
25
  @number_of_hands,
27
26
  @random_seed,
28
27
  @player_names + ['extra player']
29
28
  )
30
- end.must_raise AcpcPokerTypes::AcpcDealerData::MatchDefinition::IncorrectNumberOfPlayerNames
29
+ end.must_raise AcpcPokerTypes::DealerData::MatchDefinition::IncorrectNumberOfPlayerNames
31
30
 
32
31
  ->() do
33
- @patient = AcpcPokerTypes::AcpcDealerData::MatchDefinition.new(
32
+ @patient = AcpcPokerTypes::DealerData::MatchDefinition.new(
34
33
  @name,
35
34
  @game_def,
36
35
  @number_of_hands,
37
36
  @random_seed,
38
37
  [@player_names.first]
39
38
  )
40
- end.must_raise AcpcPokerTypes::AcpcDealerData::MatchDefinition::IncorrectNumberOfPlayerNames
39
+ end.must_raise AcpcPokerTypes::DealerData::MatchDefinition::IncorrectNumberOfPlayerNames
41
40
  end
42
41
  end
43
42
 
44
43
  describe 'can be created by providing components' do
45
44
  it 'separately' do
46
45
  init_components do
47
- @patient = AcpcPokerTypes::AcpcDealerData::MatchDefinition.new(
46
+ @patient = AcpcPokerTypes::DealerData::MatchDefinition.new(
48
47
  @name,
49
48
  @game_def,
50
49
  @number_of_hands,
@@ -58,7 +57,7 @@ describe AcpcPokerTypes::AcpcDealerData::MatchDefinition do
58
57
  it 'in string format "# name/game/hands/seed ..."' do
59
58
  init_components do
60
59
  string = "# name/game/hands/seed #{@name} #{@game_def_file_name} #{@number_of_hands} #{@random_seed}\n"
61
- @patient = AcpcPokerTypes::AcpcDealerData::MatchDefinition.parse(string, @player_names, File.dirname(@game_def_file_name))
60
+ @patient = AcpcPokerTypes::DealerData::MatchDefinition.parse(string, @player_names, File.dirname(@game_def_file_name))
62
61
 
63
62
  check_patient
64
63
  end
@@ -66,7 +65,7 @@ describe AcpcPokerTypes::AcpcDealerData::MatchDefinition do
66
65
  end
67
66
  it 'returns nil if asked to parse an improperly formatted string' do
68
67
  string = 'improperly formatted string'
69
- @patient = AcpcPokerTypes::AcpcDealerData::MatchDefinition.parse(string, ['p1', 'p2'], 'game def directory').must_be_nil
68
+ @patient = AcpcPokerTypes::DealerData::MatchDefinition.parse(string, ['p1', 'p2'], 'game def directory').must_be_nil
70
69
  end
71
70
 
72
71
  def init_components
@@ -1,6 +1,5 @@
1
-
2
1
  # Spec helper (must include first to track code coverage with SimpleCov)
3
- require_relative 'support/spec_helper'
2
+ require_relative '../support/spec_helper'
4
3
 
5
4
  require 'mocha/setup'
6
5
 
@@ -8,12 +7,12 @@ require 'acpc_dealer'
8
7
  require 'acpc_poker_types/match_state'
9
8
  require 'acpc_poker_types/poker_action'
10
9
 
11
- require 'acpc_poker_types/acpc_dealer_data/hand_data'
12
- require 'acpc_poker_types/acpc_dealer_data/match_definition'
13
- require 'acpc_poker_types/acpc_dealer_data/poker_match_data'
10
+ require 'acpc_poker_types/dealer_data/hand_data'
11
+ require 'acpc_poker_types/dealer_data/match_definition'
12
+ require 'acpc_poker_types/dealer_data/poker_match_data'
14
13
 
15
14
  include AcpcPokerTypes
16
- include AcpcPokerTypes::AcpcDealerData
15
+ include AcpcPokerTypes::DealerData
17
16
 
18
17
  describe PokerMatchData do
19
18
  before do
@@ -149,7 +148,7 @@ describe PokerMatchData do
149
148
  end
150
149
  end
151
150
  describe '#player_acting_sequence' do
152
- describe "doesn't append an empty array to the list when no players are active" do
151
+ describe "doesn't append an empty array to the list when all but one player has folded" do
153
152
  it 'in two player' do
154
153
  action_messages =
155
154
  "# name/game/hands/seed 2p.limit.h1000.r0 holdem.limit.2p.reverse_blinds.game 1 0
@@ -235,6 +234,48 @@ describe PokerMatchData do
235
234
  @patient.player_acting_sequence.must_equal player_acting_sequence
236
235
  end
237
236
  end
237
+ describe "appends an empty array to the list whenever a new round is encountered" do
238
+ it 'in two player' do
239
+ action_messages =
240
+ "# name/game/hands/seed 2p.nolimit.h1000.r0 /home/dmorrill/.rvm/gems/ruby-1.9.3-p194/gems/acpc_dealer-0.0.1/vendor/project_acpc_server/holdem.nolimit.2p.reverse_blinds.game 1000 0
241
+ #--t_response 600000
242
+ #--t_hand 600000
243
+ #--t_per_hand 7000
244
+ STARTED at 1341695920.914516
245
+ TO 1 at 1341695920.914700 MATCHSTATE:0:0::5d5c|
246
+ TO 2 at 1341695920.914745 MATCHSTATE:1:0::|9hQd
247
+ FROM 2 at 1341695920.914807 MATCHSTATE:1:0::|9hQd:r19686
248
+ TO 1 at 1341695920.914864 MATCHSTATE:0:0:r19686:5d5c|
249
+ TO 2 at 1341695920.914907 MATCHSTATE:1:0:r19686:|9hQd
250
+ FROM 1 at 1341695920.914935 MATCHSTATE:0:0:r19686:5d5c|:r20000
251
+ TO 1 at 1341695920.914988 MATCHSTATE:0:0:r19686r20000:5d5c|
252
+ TO 2 at 1341695920.915032 MATCHSTATE:1:0:r19686r20000:|9hQd
253
+ FROM 2 at 1341695920.915073 MATCHSTATE:1:0:r19686r20000:|9hQd:c
254
+ TO 1 at 1341695920.915193 MATCHSTATE:0:0:r19686r20000c///:5d5c|9hQd/8dAs8s/4h/6d
255
+ TO 2 at 1341695920.915232 MATCHSTATE:1:0:r19686r20000c///:5d5c|9hQd/8dAs8s/4h/6d
256
+ SCORE:20000|-20000:p1|p2".split("\n").map {|line| line += "\n" }
257
+
258
+ result_messages =
259
+ "# name/game/hands/seed 2p.nolimit.h1000.r0 /home/dmorrill/.rvm/gems/ruby-1.9.3-p194/gems/acpc_dealer-0.0.1/vendor/project_acpc_server/holdem.nolimit.2p.reverse_blinds.game 1000 0
260
+ #--t_response 600000
261
+ #--t_hand 600000
262
+ #--t_per_hand 7000
263
+ STATE:0:r19686r20000c///:5d5c|9hQd/8dAs8s/4h/6d:20000|-20000:p1|p2
264
+ SCORE:20000|-20000:p1|p2".split("\n").map {|line| line += "\n" }
265
+
266
+ player_acting_sequence = [[1, 0, 1], [], [], []]
267
+ @patient = PokerMatchData.parse(
268
+ action_messages,
269
+ result_messages,
270
+ ['p1', 'p2'],
271
+ AcpcDealer::DEALER_DIRECTORY
272
+ )
273
+
274
+ @patient.hand_number = 0
275
+ @patient.current_hand.turn_number = @patient.current_hand.data.length - 1
276
+ @patient.player_acting_sequence.must_equal player_acting_sequence
277
+ end
278
+ end
238
279
  end
239
280
 
240
281
  def check_patient
@@ -1,14 +1,7 @@
1
1
  require_relative 'support/spec_helper'
2
2
 
3
- # require 'acpc_dealer'
4
-
5
- require_relative "../lib/acpc_poker_types/player_group"
6
- # require_relative "../lib/acpc_poker_types/game_definition"
7
- # require_relative "../lib/acpc_poker_types/match_state"
8
- # require_relative "../lib/acpc_poker_types/poker_action"
3
+ require_relative "../lib/acpc_poker_types/hand_player_group"
9
4
  require_relative "../lib/acpc_poker_types/hand"
10
- # require_relative "../lib/acpc_poker_types/card"
11
- # require_relative "../lib/acpc_poker_types/acpc_dealer_data/poker_match_data"
12
5
 
13
6
  module MapWithIndex
14
7
  refine Array do
@@ -26,7 +19,7 @@ using MapWithIndex
26
19
 
27
20
  include AcpcPokerTypes
28
21
 
29
- describe PlayerGroup do
22
+ describe HandPlayerGroup do
30
23
  describe '::new' do
31
24
  it 'creates HandPlayers at the start of a hand' do
32
25
  stacks = [100, 200, 150]
@@ -37,7 +30,7 @@ describe PlayerGroup do
37
30
 
38
31
  hands[position] = arbitrary_hole_card_hand
39
32
 
40
- PlayerGroup.new(
33
+ HandPlayerGroup.new(
41
34
  hands,
42
35
  stacks,
43
36
  blinds