bridge 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,108 +1,115 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bridge
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 4
9
- version: 0.1.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
10
5
  platform: ruby
11
- authors:
12
- - "Jakub Ku\xC5\xBAma"
13
- - "Wojciech Wn\xC4\x99trzak"
6
+ authors:
7
+ - Jakub Kuźma
8
+ - Wojciech Wnętrzak
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-09-15 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2013-05-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: bundler
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 1
30
- - 0
31
- - 0
32
- version: 1.0.0
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '1.3'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '1.3'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
33
35
  type: :development
34
36
  prerelease: false
35
- version_requirements: *id001
36
- description: Useful contract bridge utilities - deal generator, id to deal and deal to id conversion
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ description: Useful contract bridge utilities - deal generator, id to deal and deal
43
+ to id conversion
37
44
  email: qoobaa+github@gmail.com
38
45
  executables: []
39
-
40
46
  extensions: []
41
-
42
47
  extra_rdoc_files: []
43
-
44
- files:
48
+ files:
45
49
  - .gitignore
50
+ - .travis.yml
46
51
  - Gemfile
47
- - Gemfile.lock
48
52
  - LICENSE
49
- - README.rdoc
53
+ - README.md
50
54
  - Rakefile
51
55
  - bridge.gemspec
52
56
  - lib/bridge.rb
57
+ - lib/bridge/auction.rb
53
58
  - lib/bridge/bid.rb
54
59
  - lib/bridge/card.rb
55
60
  - lib/bridge/constants.rb
56
61
  - lib/bridge/deal.rb
62
+ - lib/bridge/play.rb
57
63
  - lib/bridge/points.rb
58
64
  - lib/bridge/points/chicago.rb
59
65
  - lib/bridge/points/duplicate.rb
60
66
  - lib/bridge/score.rb
61
67
  - lib/bridge/trick.rb
62
68
  - lib/bridge/version.rb
69
+ - test/auction_test.rb
70
+ - test/bid_test.rb
71
+ - test/bridge_test.rb
72
+ - test/card_test.rb
73
+ - test/chicago_test.rb
74
+ - test/deal_test.rb
75
+ - test/duplicate_test.rb
63
76
  - test/helper.rb
64
- - test/test_bid.rb
65
- - test/test_bridge.rb
66
- - test/test_card.rb
67
- - test/test_chicago.rb
68
- - test/test_deal.rb
69
- - test/test_duplicate.rb
70
- - test/test_score.rb
71
- - test/test_trick.rb
72
- has_rdoc: true
73
- homepage: http://github.com/qoobaa/bridge
74
- licenses: []
75
-
77
+ - test/play_test.rb
78
+ - test/score_test.rb
79
+ - test/trick_test.rb
80
+ homepage: https://github.com/qoobaa/bridge
81
+ licenses:
82
+ - MIT
83
+ metadata: {}
76
84
  post_install_message:
77
85
  rdoc_options: []
78
-
79
- require_paths:
86
+ require_paths:
80
87
  - lib
81
- required_ruby_version: !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: -2291621128807536229
87
- segments:
88
- - 0
89
- version: "0"
90
- required_rubygems_version: !ruby/object:Gem::Requirement
91
- none: false
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- segments:
96
- - 1
97
- - 3
98
- - 6
99
- version: 1.3.6
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - '>='
91
+ - !ruby/object:Gem::Version
92
+ version: 1.9.3
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
100
98
  requirements: []
101
-
102
- rubyforge_project: bridge
103
- rubygems_version: 1.3.7
99
+ rubyforge_project:
100
+ rubygems_version: 2.0.2
104
101
  signing_key:
105
- specification_version: 3
102
+ specification_version: 4
106
103
  summary: Contract bridge utilities
107
- test_files: []
108
-
104
+ test_files:
105
+ - test/auction_test.rb
106
+ - test/bid_test.rb
107
+ - test/bridge_test.rb
108
+ - test/card_test.rb
109
+ - test/chicago_test.rb
110
+ - test/deal_test.rb
111
+ - test/duplicate_test.rb
112
+ - test/helper.rb
113
+ - test/play_test.rb
114
+ - test/score_test.rb
115
+ - test/trick_test.rb
@@ -1,12 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- rake (0.8.7)
5
- test-unit (2.1.1)
6
-
7
- PLATFORMS
8
- ruby
9
-
10
- DEPENDENCIES
11
- rake
12
- test-unit (>= 2)
@@ -1,62 +0,0 @@
1
- = bridge
2
-
3
- Contract bridge utils.
4
-
5
- == Bid
6
-
7
- == Card
8
-
9
- == Deal
10
-
11
- == Trick
12
-
13
- == Score
14
-
15
- You can create Score object passing 3 arguments:
16
- Bridge::Score.new(:contract => "6NTX", :vulnerable => true, :tricks => "=")
17
-
18
- Arguments:
19
- * :contract -- String, where first sign is level, second suit (C D H S NT) and optional double or redouble (X or XX)
20
- * :vulnerable -- Boolean, declarer is vulnerable? (default is false)
21
- * :tricks -- Integer or String, when Integer is passed it's number of tricks taken by declarer side, String can be relative to contract level i.e. "+1", "-2", "="
22
-
23
- Methods:
24
- * Score#made? -- Boolean
25
- * Score#result -- Integer, relative to contract level i.e. -1 (one down), 1 (overtrick), 0 (contract made)
26
- * Score#result_string -- String, relative to contract level i.e "+1", "=", "-3"
27
- * Score#points -- Integer, calculated full value
28
-
29
- You can also ask for all possible contracts finished with given points:
30
- Bridge::Score.with_points(980)
31
- #=> ["1NTX+4v", "2C/DX+4v", "6H/S="]
32
-
33
- You can use regexp to check if contract with result is valid:
34
- Bridge::Score::REGEXP
35
- will match i.e.
36
- "1NT=", "2SX+1", "6NTXX-2"
37
-
38
- == Points
39
-
40
- === Chicago
41
-
42
- You can calculate how many IMP points you won by:
43
- Bridge::Points::Chicago.new(:hcp => 25, :points => 420, :vulnerable => false).imps
44
-
45
- Arguments:
46
- * :hcp -- Integer (range between 20 and 40), which means how many honour card points has side
47
- * :vulnerable -- Boolean, side with given hcp is vulnerable?
48
- * :points -- Integer, the result at the end of board (can be calculated by Bridge::Score)
49
-
50
- == Note on Patches/Pull Requests
51
-
52
- * Fork the project.
53
- * Make your feature addition or bug fix.
54
- * Add tests for it. This is important so I don't break it in a
55
- future version unintentionally.
56
- * Commit, do not mess with rakefile, version, or history.
57
- (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
58
- * Send me a pull request. Bonus points for topic branches.
59
-
60
- == Copyright
61
-
62
- Copyright (c) 2010 Jakub Kuźma. See LICENSE for details.
@@ -1,135 +0,0 @@
1
- require "helper"
2
-
3
- class TestBid < Test::Unit::TestCase
4
- test "pas is not a valid bid" do
5
- assert_raises(ArgumentError) do
6
- Bridge::Bid.new("pas")
7
- end
8
- end
9
-
10
- test "case doesn't matter in bid" do
11
- Bridge::Bid.new("pass")
12
- Bridge::Bid.new("x")
13
- Bridge::Bid.new("xx")
14
- Bridge::Bid.new("1nt")
15
- end
16
-
17
- test "pass is a valid bid" do
18
- bid = Bridge::Bid.new("PASS")
19
- assert bid.pass?
20
- assert_false bid.double?
21
- assert_false bid.redouble?
22
- assert_false bid.modifier?
23
- assert_false bid.contract?
24
- assert_nil bid.level
25
- assert_nil bid.suit
26
- end
27
-
28
- test "double is a valid bid" do
29
- bid = Bridge::Bid.new("X")
30
- assert_false bid.pass?
31
- assert bid.double?
32
- assert_false bid.redouble?
33
- assert bid.modifier?
34
- assert_false bid.contract?
35
- assert_nil bid.level
36
- assert_nil bid.suit
37
- end
38
-
39
- test "redouble is a valid bid" do
40
- bid = Bridge::Bid.new("XX")
41
- assert_false bid.pass?
42
- assert_false bid.double?
43
- assert bid.redouble?
44
- assert bid.modifier?
45
- assert_false bid.contract?
46
- assert_nil bid.level
47
- assert_nil bid.suit
48
- end
49
-
50
- test "1H is a valid bid" do
51
- bid = Bridge::Bid.new("1H")
52
- assert_false bid.pass?
53
- assert_false bid.double?
54
- assert_false bid.redouble?
55
- assert_false bid.modifier?
56
- assert bid.contract?
57
- assert_equal "1", bid.level
58
- assert_equal "H", bid.suit
59
- end
60
-
61
- test "7NT is a valid bid" do
62
- bid = Bridge::Bid.new("7NT")
63
- assert_false bid.pass?
64
- assert_false bid.double?
65
- assert_false bid.redouble?
66
- assert_false bid.modifier?
67
- assert bid.contract?
68
- assert_equal "7", bid.level
69
- assert_equal "NT", bid.suit
70
- end
71
-
72
- test "7NT is greater than 1C" do
73
- assert Bridge::Bid.new("7NT") > Bridge::Bid.new("1C")
74
- assert_false Bridge::Bid.new("7NT") < Bridge::Bid.new("1C")
75
- assert_false Bridge::Bid.new("7NT") == Bridge::Bid.new("1C")
76
- end
77
-
78
- test "1S is greater than 1H" do
79
- assert Bridge::Bid.new("1S") > Bridge::Bid.new("1H")
80
- assert_false Bridge::Bid.new("1S") < Bridge::Bid.new("1H")
81
- assert_false Bridge::Bid.new("1S") == Bridge::Bid.new("1H")
82
- end
83
-
84
- test "comparison of PASS and 1S raises an error" do
85
- assert_raises(ArgumentError) do
86
- Bridge::Bid.new("PASS") > Bridge::Bid.new("1S")
87
- end
88
- end
89
-
90
- test "comparison of X and PASS raises an error" do
91
- assert_raises(ArgumentError) do
92
- Bridge::Bid.new("X") > Bridge::Bid.new("PASS")
93
- end
94
- end
95
-
96
- test "PASS and XX are not equal" do
97
- assert_not_equal Bridge::Bid.new("PASS"), Bridge::Bid.new("XX")
98
- end
99
-
100
- test "1S returns S trump" do
101
- assert_equal "S", Bridge::Bid.new("1S").trump
102
- end
103
-
104
- test "5NT returns nil trump" do
105
- assert_nil Bridge::Bid.new("5NT").trump
106
- end
107
-
108
- test "1H is a major bid" do
109
- assert Bridge::Bid.new("1H").major?
110
- end
111
-
112
- test "5S is a major bid" do
113
- assert Bridge::Bid.new("5S").major?
114
- end
115
-
116
- test "2C is a minor bid" do
117
- assert Bridge::Bid.new("2C").minor?
118
- end
119
-
120
- test "6D is a minor bid" do
121
- assert Bridge::Bid.new("6D").minor?
122
- end
123
-
124
- test "1NT is a nt bid" do
125
- assert Bridge::Bid.new("1NT").nt?
126
- end
127
-
128
- test "6NT is a small slam" do
129
- assert Bridge::Bid.new("6NT").small_slam?
130
- end
131
-
132
- test "7NT is a grand slam" do
133
- assert Bridge::Bid.new("7NT").grand_slam?
134
- end
135
- end
@@ -1,62 +0,0 @@
1
- require "helper"
2
-
3
- class TestBridge < Test::Unit::TestCase
4
- test "negative number is not valid deal id" do
5
- assert_false Bridge.deal_id?(-1)
6
- end
7
-
8
- test "number of possible bridge deals is not valid deal id" do
9
- assert_false Bridge.deal_id?(Bridge::DEALS)
10
- end
11
-
12
- test "return partner of direction" do
13
- assert_equal "N", Bridge.partner_of("S")
14
- assert_equal "S", Bridge.partner_of("N")
15
- assert_equal "E", Bridge.partner_of("W")
16
- assert_equal "W", Bridge.partner_of("E")
17
- end
18
-
19
- test "return side of direction" do
20
- assert_equal "NS", Bridge.side_of("S")
21
- assert_equal "NS", Bridge.side_of("N")
22
- assert_equal "EW", Bridge.side_of("W")
23
- assert_equal "EW", Bridge.side_of("E")
24
- end
25
-
26
- test "return next direction" do
27
- assert_equal "E", Bridge.next_direction("N")
28
- assert_equal "S", Bridge.next_direction("E")
29
- assert_equal "W", Bridge.next_direction("S")
30
- assert_equal "N", Bridge.next_direction("W")
31
- assert_equal "N", Bridge.next_direction(nil)
32
- end
33
-
34
- test "return vulnerable for given deal nr" do
35
- assert_equal "NONE", Bridge.vulnerable_in_deal(nil)
36
-
37
- assert_equal "NONE", Bridge.vulnerable_in_deal(1)
38
- assert_equal "NS", Bridge.vulnerable_in_deal(2)
39
- assert_equal "EW", Bridge.vulnerable_in_deal(3)
40
- assert_equal "BOTH", Bridge.vulnerable_in_deal(4)
41
-
42
- assert_equal "NS", Bridge.vulnerable_in_deal(5)
43
- assert_equal "EW", Bridge.vulnerable_in_deal(6)
44
- assert_equal "BOTH", Bridge.vulnerable_in_deal(7)
45
- assert_equal "NONE", Bridge.vulnerable_in_deal(8)
46
-
47
- assert_equal "EW", Bridge.vulnerable_in_deal(9)
48
- assert_equal "BOTH", Bridge.vulnerable_in_deal(10)
49
- assert_equal "NONE", Bridge.vulnerable_in_deal(11)
50
- assert_equal "NS", Bridge.vulnerable_in_deal(12)
51
-
52
- assert_equal "BOTH", Bridge.vulnerable_in_deal(13)
53
- assert_equal "NONE", Bridge.vulnerable_in_deal(14)
54
- assert_equal "NS", Bridge.vulnerable_in_deal(15)
55
- assert_equal "EW", Bridge.vulnerable_in_deal(16)
56
-
57
- assert_equal "NONE", Bridge.vulnerable_in_deal(17)
58
- assert_equal "NS", Bridge.vulnerable_in_deal(18)
59
- assert_equal "EW", Bridge.vulnerable_in_deal(19)
60
- assert_equal "BOTH", Bridge.vulnerable_in_deal(20)
61
- end
62
- end