sportdb-models 2.0.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5c8072de5db8829c62e3b726472af30146ebf320
4
- data.tar.gz: ad299b7cd1fe9e2e604ac09d69894df443a6d46b
2
+ SHA256:
3
+ metadata.gz: 4f4d65007750a5f87beb091e967c48e761908b79f736d8a919b165c8d8657616
4
+ data.tar.gz: 8ab5b00ce91188d10bbb8e915f0e6f3469d84ddb62528c47b6436db1eddbacf1
5
5
  SHA512:
6
- metadata.gz: 34d296b375d07d2b3345796fb13d85482f27b46d36b954d65eff33db37d35a8debde350032bc55e5f21e62eb4efbdea9911498c9bb37f0a4d7b99ec720420337
7
- data.tar.gz: ceadae3f743055cc344fff0badf8a43f145f9390cee78b9e64f7725768e3cbb00fd6a0899e9e52e8ffc67f4520f8d585efdae23fec6eb6bb72471f7d736b8d32
6
+ metadata.gz: d315bc6659797ce8c9afc9bb0feedb8ac14e25766eb65caedf36da082666bc0f284f0def80d62fa8b04e3789bb7f7caecd6859ca38bed607e82ffcf6a70309bf
7
+ data.tar.gz: c0216968600f67c288576b73efbcce26706a949ffa8e4822d74541a904ba797a55f82a4ad604d86acf5c86806f4d4204a0b1af2d0b8ae15e840c0df050ee4228
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ ### 2.1.0
2
+
1
3
  ### 0.4.0 / 2012-10-16
2
4
 
3
5
  * Add plain text fixture reader/loader
data/Manifest.txt CHANGED
@@ -31,7 +31,3 @@ lib/sportdb/models/schema.rb
31
31
  lib/sportdb/models/stats.rb
32
32
  lib/sportdb/models/utils.rb
33
33
  lib/sportdb/models/version.rb
34
- test/helper.rb
35
- test/test_changes.rb
36
- test/test_cursor.rb
37
- test/test_winner.rb
data/README.md CHANGED
@@ -1,14 +1,12 @@
1
1
  # sportdb-models gem - sport.db schema 'n' models for easy (re)use
2
2
 
3
- <!--
4
- [![Build Status](https://secure.travis-ci.org/geraldb/sport.db.ruby.png?branch=master)](http://travis-ci.org/geraldb/sport.db.ruby)
5
- -->
3
+
6
4
 
7
5
  * home :: [github.com/sportdb/sport.db](https://github.com/sportdb/sport.db)
8
6
  * bugs :: [github.com/sportdb/sport.db/issues](https://github.com/sportdb/sport.db/issues)
9
7
  * gem :: [rubygems.org/gems/sportdb-models](https://rubygems.org/gems/sportdb-models)
10
8
  * rdoc :: [rubydoc.info/gems/sportdb-models](http://rubydoc.info/gems/sportdb-models)
11
- * forum :: [groups.google.com/group/opensport](https://groups.google.com/group/opensport)
9
+
12
10
 
13
11
 
14
12
  ## Usage Models
@@ -18,14 +16,13 @@
18
16
 
19
17
  ## License
20
18
 
21
- ![](https://publicdomainworks.github.io/buttons/zero88x31.png)
22
-
23
19
  The `sportdb-models` scripts are dedicated to the public domain.
24
20
  Use it as you please with no restrictions whatsoever.
25
21
 
26
22
 
27
23
  ## Questions? Comments?
28
24
 
29
- Send them along to the
30
- [Open Sports & Friends Forum/Mailing List](http://groups.google.com/group/opensport).
31
- Thanks!
25
+ Yes, you can. More than welcome.
26
+ See [Help & Support »](https://github.com/openfootball/help)
27
+
28
+
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ Hoe.spec 'sportdb-models' do
9
9
  self.summary = "sportdb-models - sport.db schema 'n' models for easy (re)use"
10
10
  self.description = summary
11
11
 
12
- self.urls = ['https://github.com/sportdb/sport.db']
12
+ self.urls = { home: 'https://github.com/sportdb/sport.db' }
13
13
 
14
14
  self.author = 'Gerald Bauer'
15
15
  self.email = 'opensport@googlegroups.com'
@@ -2,7 +2,10 @@
2
2
  module SportDb
3
3
  module Model
4
4
 
5
- ### use Squad for name? - alias??
5
+ ### todo/fix - yes, use Squad for name
6
+ ### use lineup table for match (specific) players lineup/formation
7
+ ## NOT league (all season) squad !!!!!
8
+
6
9
 
7
10
  class Lineup < ActiveRecord::Base
8
11
 
@@ -16,8 +16,9 @@ class Team < ActiveRecord::Base
16
16
  has_many :home_matches, class_name: 'Match', foreign_key: 'team1_id'
17
17
  has_many :away_matches, class_name: 'Match', foreign_key: 'team2_id'
18
18
 
19
- validates :key, format: { with: TEAM_KEY_RE, message: TEAM_KEY_MESSAGE }
20
- validates :code, format: { with: TEAM_CODE_RE, message: TEAM_CODE_MESSAGE }, allow_nil: true
19
+ ## note: for now allow any key and code
20
+ ## validates :key, format: { with: TEAM_KEY_RE, message: TEAM_KEY_MESSAGE }
21
+ ## validates :code, format: { with: TEAM_CODE_RE, message: TEAM_CODE_MESSAGE }, allow_nil: true
21
22
 
22
23
  has_many :event_teams, class_name: 'EventTeam' # join table (events+teams)
23
24
  has_many :events, :through => :event_teams
@@ -208,8 +208,13 @@ create_table :matches do |t|
208
208
 
209
209
 
210
210
  t.date :date # optional play date - todo/fix: split into play_date AND play_time!!!
211
- t.time :time
211
+ ## note: activerecord(rails) will auto-add date (2000-01-01) to hours/time!!!
212
+ ## work around - save a string type!!!!
213
+ ## e.g. 19:00 etc.
214
+ ## t.time :time
215
+ t.string :time
212
216
 
217
+
213
218
  t.boolean :postponed, null: false, default: false
214
219
  ## t.date :date2 # optional old date (when postponed)
215
220
  ## t.date :date3 # optional old date (when postponed twice)
@@ -1,11 +1,9 @@
1
- # encoding: utf-8
2
-
3
1
  module SportDb
4
2
  module Module
5
3
  module Models
6
4
  MAJOR = 2
7
- MINOR = 0
8
- PATCH = 2
5
+ MINOR = 1
6
+ PATCH = 0
9
7
  VERSION = [MAJOR,MINOR,PATCH].join('.')
10
8
 
11
9
  def self.version
@@ -13,13 +11,12 @@ module Models
13
11
  end
14
12
 
15
13
  def self.banner
16
- "sportdb-models/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
14
+ "sportdb-models/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] in (#{root})"
17
15
  end
18
16
 
19
17
  def self.root
20
- "#{File.expand_path( File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) )}"
18
+ File.expand_path( File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) )
21
19
  end
22
-
23
20
  end # module Models
24
21
  end # module Module
25
22
 
@@ -1,48 +1,45 @@
1
- # encoding: utf-8
2
-
3
-
4
1
  # core and stlibs (note: get included via worlddb-models gem; see worlddb-models gem/lib)
5
2
  require 'worlddb/models' # NOTE: include worlddb-models gem (not cli tools gem, that is, worlddb)
6
3
  require 'persondb/models'
7
4
 
8
5
 
9
6
  # our own code
7
+ require_relative 'models/version' # let version always go first
10
8
 
11
- require 'sportdb/models/version' # let version always go first
9
+ require_relative 'models/formats'
10
+ require_relative 'models/models/forward'
12
11
 
13
- require 'sportdb/models/formats'
14
- require 'sportdb/models/models/forward'
12
+ require_relative 'models/models/world/city'
13
+ require_relative 'models/models/world/country'
14
+ require_relative 'models/models/world/continent'
15
+ require_relative 'models/models/world/state'
15
16
 
16
- require 'sportdb/models/models/world/city'
17
- require 'sportdb/models/models/world/country'
18
- require 'sportdb/models/models/world/continent'
19
- require 'sportdb/models/models/world/state'
17
+ require_relative 'models/models/assoc'
18
+ require_relative 'models/models/badge'
19
+ require_relative 'models/models/event'
20
+ require_relative 'models/models/goal'
21
+ require_relative 'models/models/ground'
22
+ require_relative 'models/models/group'
23
+ require_relative 'models/models/league'
24
+ require_relative 'models/models/lineup'
25
+ require_relative 'models/models/match'
26
+ require_relative 'models/models/person'
27
+ require_relative 'models/models/round'
28
+ require_relative 'models/models/season'
29
+ require_relative 'models/models/stage'
30
+ require_relative 'models/models/team'
20
31
 
21
- require 'sportdb/models/models/assoc'
22
- require 'sportdb/models/models/badge'
23
- require 'sportdb/models/models/event'
24
- require 'sportdb/models/models/goal'
25
- require 'sportdb/models/models/ground'
26
- require 'sportdb/models/models/group'
27
- require 'sportdb/models/models/league'
28
- require 'sportdb/models/models/lineup'
29
- require 'sportdb/models/models/match'
30
- require 'sportdb/models/models/person'
31
- require 'sportdb/models/models/round'
32
- require 'sportdb/models/models/season'
33
- require 'sportdb/models/models/stage'
34
- require 'sportdb/models/models/team'
32
+ require_relative 'models/models/stats/alltime_standing'
33
+ require_relative 'models/models/stats/event_standing'
34
+ require_relative 'models/models/stats/group_standing'
35
35
 
36
- require 'sportdb/models/models/stats/alltime_standing'
37
- require 'sportdb/models/models/stats/event_standing'
38
- require 'sportdb/models/models/stats/group_standing'
36
+ require_relative 'models/schema' # note: requires sportdb/models (include SportDB::Models)
39
37
 
40
- require 'sportdb/models/schema' # note: requires sportdb/models (include SportDB::Models)
38
+ require_relative 'models/utils' # e.g. MatchCursor
41
39
 
42
- require 'sportdb/models/utils' # e.g. MatchCursor
40
+ require_relative 'models/deleter'
41
+ require_relative 'models/stats'
43
42
 
44
- require 'sportdb/models/deleter'
45
- require 'sportdb/models/stats'
46
43
 
47
44
 
48
45
  module SportDb
@@ -62,6 +59,38 @@ module SportDb
62
59
  SportDb.create
63
60
  end
64
61
 
62
+ def self.auto_migrate!
63
+ ### todo/fix:
64
+ ## check props table and versions!!!!!
65
+
66
+ # first time? - auto-run db migratation, that is, create db tables
67
+ unless LogDb::Model::Log.table_exists?
68
+ LogDb.create # add logs table
69
+ end
70
+
71
+ unless ConfDb::Model::Prop.table_exists?
72
+ ConfDb.create # add props table
73
+ end
74
+
75
+
76
+ unless TagDb::Model::Tag.table_exists?
77
+ TagDb.create # add tags & taggings tables
78
+ end
79
+
80
+ unless WorldDb::Model::Place.table_exists?
81
+ WorldDb.create # add places, & co. tables
82
+ end
83
+
84
+ unless PersonDb::Model::Person.table_exists?
85
+ PersonDb.create # add persons table
86
+ end
87
+
88
+ unless SportDb::Model::League.table_exists?
89
+ SportDb.create
90
+ end
91
+ end # method auto_migrate!
92
+
93
+
65
94
  # delete ALL records (use with care!)
66
95
  def self.delete!
67
96
  puts '*** deleting sport table records/data...'
@@ -74,8 +103,14 @@ module SportDb
74
103
  end
75
104
 
76
105
 
77
- def self.connect( config={} )
106
+ ### use/change to **config - to allow "inline" conif with keywords
107
+ ## (without enclosing {}) - why? why not?
108
+ def self.connect!( config={} ) # convenience shortcut w/ automigrate
109
+ connect( config )
110
+ auto_migrate!
111
+ end
78
112
 
113
+ def self.connect( config={} )
79
114
  if config.empty?
80
115
  puts "ENV['DATBASE_URL'] - >#{ENV['DATABASE_URL']}<"
81
116
 
@@ -132,19 +167,43 @@ module SportDb
132
167
  end
133
168
 
134
169
 
170
+
171
+ def self.open( path ) ## shortcut for sqlite only
172
+ config = {
173
+ adapter: 'sqlite3',
174
+ database: path # e.g. ':memory', './sport.db'
175
+ }
176
+ connect!( config )
177
+ end
178
+
135
179
  def self.setup_in_memory_db
136
180
  # Database Setup & Config
137
- ActiveRecord::Base.logger = Logger.new( STDOUT )
181
+ ## add logger as option - why? why not?
182
+ ## e.g. open_mem( logger: true ) or
183
+ ## always possible to add logger "manually" before
184
+ ## thus, no need for option/flag really ??
185
+ ## ActiveRecord::Base.logger = Logger.new( STDOUT )
138
186
  ## ActiveRecord::Base.colorize_logging = false - no longer exists - check new api/config setting?
139
-
140
- connect( adapter: 'sqlite3',
141
- database: ':memory:' )
187
+
188
+ config = {
189
+ adapter: 'sqlite3',
190
+ database: ':memory:'
191
+ }
192
+ connect( config )
142
193
 
143
194
  ## build schema
144
195
  create_all
145
196
  end # setup_in_memory_db (using SQLite :memory:)
146
197
 
147
198
 
199
+ ###########
200
+ # add more aliases/alt names for in memory db - why? why not?
201
+ ## rename to open_mem for canonical name - why? why not?
202
+ class << self
203
+ alias_method :open_mem, :setup_in_memory_db
204
+ alias_method :open_memory, :setup_in_memory_db
205
+ alias_method :open_in_memory, :setup_in_memory_db
206
+ end
148
207
  end # module SportDb
149
208
 
150
209
 
@@ -155,17 +214,19 @@ module SportDb
155
214
  # add alias why? why not?
156
215
  #
157
216
  # more aliases to consider:
158
- # - Tournament for Event?
159
- # - Cup for League?
160
- # - Roster for Lineup?
161
- # - Stadium for Ground? - why? why not?
217
+ # - Roster for Squad/Lineup?
218
+ # - Stadium / Venue for Ground? - why? why not?
219
+ #
220
+ # use Competition/Tournament for League/Cup alias
221
+ #
222
+ # Event => LeagueSeason (League+Season) - use LeagueSeason alias - why? why not?
162
223
 
163
224
 
164
- Competition = Event
165
- Comp = Event
225
+ ### fix - use Squad for (all) LeagueSeason players
226
+ ## use Lineup for players for one match!!!!
166
227
 
167
228
  LineUp = Lineup
168
- Squad = Lineup
229
+ Squad = Lineup #### fix - do NOT use squad and lineup as alias (see above)!!!!
169
230
 
170
231
  Game = Match ## add (old) alias - why? why not?
171
232
  end # module Model
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb-models
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-01 00:00:00.000000000 Z
11
+ date: 2024-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: worlddb-models
@@ -42,30 +42,36 @@ dependencies:
42
42
  name: rdoc
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '4.0'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '7'
48
51
  type: :development
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
- - - "~>"
55
+ - - ">="
53
56
  - !ruby/object:Gem::Version
54
57
  version: '4.0'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '7'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: hoe
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '3.16'
67
+ version: '4.1'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '3.16'
74
+ version: '4.1'
69
75
  description: sportdb-models - sport.db schema 'n' models for easy (re)use
70
76
  email: opensport@googlegroups.com
71
77
  executables: []
@@ -108,15 +114,11 @@ files:
108
114
  - lib/sportdb/models/stats.rb
109
115
  - lib/sportdb/models/utils.rb
110
116
  - lib/sportdb/models/version.rb
111
- - test/helper.rb
112
- - test/test_changes.rb
113
- - test/test_cursor.rb
114
- - test/test_winner.rb
115
117
  homepage: https://github.com/sportdb/sport.db
116
118
  licenses:
117
119
  - Public Domain
118
120
  metadata: {}
119
- post_install_message:
121
+ post_install_message:
120
122
  rdoc_options:
121
123
  - "--main"
122
124
  - README.md
@@ -133,9 +135,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
135
  - !ruby/object:Gem::Version
134
136
  version: '0'
135
137
  requirements: []
136
- rubyforge_project:
137
- rubygems_version: 2.5.2
138
- signing_key:
138
+ rubygems_version: 3.4.10
139
+ signing_key:
139
140
  specification_version: 4
140
141
  summary: sportdb-models - sport.db schema 'n' models for easy (re)use
141
142
  test_files: []
data/test/helper.rb DELETED
@@ -1,46 +0,0 @@
1
- ## minitest setup
2
- require 'minitest/autorun'
3
-
4
-
5
- ## our own code
6
- require 'sportdb/models'
7
-
8
-
9
- #####################
10
- # Models shortcuts
11
-
12
- Country = WorldDb::Model::Country
13
-
14
- Person = PersonDb::Model::Person
15
-
16
- League = SportDb::Model::League
17
- Season = SportDb::Model::Season
18
- Event = SportDb::Model::Event
19
- Team = SportDb::Model::Team
20
- Lineup = SportDb::Model::Lineup
21
- Assoc = SportDb::Model::Assoc
22
- AssocAssoc = SportDb::Model::AssocAssoc
23
-
24
- Round = SportDb::Model::Round
25
- Group = SportDb::Model::Group
26
- Stage = SportDb::Model::Stage
27
- Match = SportDb::Model::Match
28
- MatchCursor = SportDb::Model::MatchCursor
29
-
30
-
31
- EventStanding = SportDb::Model::EventStanding
32
- EventStandingEntry = SportDb::Model::EventStandingEntry
33
- GroupStanding = SportDb::Model::GroupStanding
34
- GroupStandingEntry = SportDb::Model::GroupStandingEntry
35
- AlltimeStanding = SportDb::Model::AlltimeStanding
36
- AlltimeStandingEntry = SportDb::Model::AlltimeStandingEntry
37
-
38
-
39
- #################################
40
- # setup db -> schema / tables
41
-
42
- SportDb.setup_in_memory_db
43
-
44
- ## test helpers here
45
- SportDb.delete!
46
- SportDb.tables
data/test/test_changes.rb DELETED
@@ -1,78 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_changes.rb
6
-
7
- require 'helper'
8
-
9
- class TestChanges < MiniTest::Test
10
-
11
- def test_score
12
- match1 = Match.new
13
- match1.score1 = 1
14
- match1.score2 = 2
15
-
16
- match2 = Match.new
17
- match2.score1 = 1
18
- match2.score2 = 1
19
- match2.score1p = 5
20
- match2.score2p = 3
21
-
22
- match_attribs = {
23
- score1: 1,
24
- score2: 2,
25
- score1et: nil,
26
- score2et: nil,
27
- score1p: nil,
28
- score2p: nil
29
- }
30
-
31
- assert_equal false, match1.check_for_changes( match_attribs )
32
- assert_equal true, match2.check_for_changes( match_attribs )
33
- end
34
-
35
- def test_date
36
- match1 = Match.new
37
- match1.score1 = 1
38
- match1.score2 = 2
39
- match1.date = Date.new( 2012, 11, 5 )
40
-
41
- match2 = Match.new
42
- match2.score1 = 1
43
- match2.score2 = 2
44
- match2.date = DateTime.new( 2012, 12, 24 )
45
-
46
- match_attribs = {
47
- score1: 1,
48
- score2: 2,
49
- date: DateTime.new( 2012, 11, 5 )
50
- }
51
-
52
- assert_equal false, match1.check_for_changes( match_attribs )
53
- assert_equal true, match2.check_for_changes( match_attribs )
54
- end
55
-
56
- def test_group_id
57
- match1 = Match.new
58
- match1.score1 = 1
59
- match1.score2 = 2
60
- match1.group_id = 1
61
-
62
- match2 = Match.new
63
- match2.score1 = 1
64
- match2.score2 = 2
65
- match2.group_id = 2
66
-
67
- match_attribs = {
68
- score1: 1,
69
- score2: 2,
70
- group_id: 1
71
- }
72
-
73
- assert_equal false, match1.check_for_changes( match_attribs )
74
- assert_equal true, match2.check_for_changes( match_attribs )
75
- end
76
-
77
-
78
- end # class TestChanges
data/test/test_cursor.rb DELETED
@@ -1,55 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_cursor.rb
6
-
7
-
8
- require 'helper'
9
-
10
- class TestCursor < MiniTest::Test
11
-
12
- def test_matches
13
- matches = []
14
-
15
- matches << Match.new( score1: 3, score2: 1, date: Date.new(2013, 8, 9) )
16
- matches << Match.new( score1: 1, score2: 3, date: Date.new(2013, 8, 10) )
17
- matches << Match.new( score1: 2, score2: 0, date: Date.new(2013, 8, 10) )
18
- matches << Match.new( score1: 3, score2: 2, date: Date.new(2013, 8, 12) ) # new_week
19
-
20
- MatchCursor.new( matches ).each do |match,state|
21
- if state.index == 0
22
- assert_equal 3, match.score1
23
- assert_equal 1, match.score2
24
- assert_equal true, state.new_date?
25
- assert_equal true, state.new_year?
26
- assert_equal true, state.new_week?
27
- end
28
-
29
- if state.index == 1
30
- assert_equal 1, match.score1
31
- assert_equal 3, match.score2
32
- assert_equal true, state.new_date?
33
- assert_equal false, state.new_year?
34
- assert_equal false, state.new_week?
35
- end
36
-
37
- if state.index == 2
38
- assert_equal 2, match.score1
39
- assert_equal 0, match.score2
40
- assert_equal false, state.new_date?
41
- assert_equal false, state.new_year?
42
- assert_equal false, state.new_week?
43
- end
44
-
45
- if state.index == 3
46
- assert_equal 3, match.score1
47
- assert_equal 2, match.score2
48
- assert_equal true, state.new_date?
49
- assert_equal true, state.new_week?
50
- assert_equal false, state.new_year?
51
- end
52
- end
53
- end
54
-
55
- end # class TestCursor
data/test/test_winner.rb DELETED
@@ -1,100 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_winner.rb
6
-
7
-
8
- require 'helper'
9
-
10
- class TestWinner < MiniTest::Test
11
-
12
- def test_1_2
13
- match = Match.new
14
- match.score1 = 1
15
- match.score2 = 2
16
- match.calc_winner
17
-
18
- assert_equal 2, match.winner90
19
- assert_equal 2, match.winner
20
- assert_equal true, match.winner2?
21
- assert_equal false, match.winner1?
22
- assert_equal false, match.draw?
23
- end
24
-
25
- def test_1_1
26
- match = Match.new
27
- match.score1 = 1
28
- match.score2 = 1
29
- match.calc_winner
30
-
31
- assert_equal 0, match.winner90
32
- assert_equal 0, match.winner
33
- assert_equal true, match.draw?
34
- assert_equal false, match.winner1?
35
- assert_equal false, match.winner2?
36
- end
37
-
38
- def test_2_1
39
- match = Match.new
40
- match.score1 = 2
41
- match.score2 = 1
42
- match.calc_winner
43
-
44
- assert_equal 1, match.winner90
45
- assert_equal 1, match.winner
46
- assert_equal true, match.winner1?
47
- assert_equal false, match.winner2?
48
- assert_equal false, match.draw?
49
- end
50
-
51
- def test_1_1__2_1
52
- match = Match.new
53
- match.score1 = 1
54
- match.score2 = 1
55
- match.score1et = 2
56
- match.score2et = 1
57
- match.calc_winner
58
-
59
- assert_equal 0, match.winner90
60
- assert_equal 1, match.winner
61
- assert_equal true, match.winner1?
62
- assert_equal false, match.winner2?
63
- assert_equal false, match.draw?
64
- end
65
-
66
- def test_1_1__2_2__3_5
67
- match = Match.new
68
- match.score1 = 1
69
- match.score2 = 1
70
- match.score1et = 2
71
- match.score2et = 2
72
- match.score1p = 3
73
- match.score2p = 5
74
- match.calc_winner
75
-
76
- assert_equal 0, match.winner90
77
- assert_equal 2, match.winner
78
- assert_equal true, match.winner2?
79
- assert_equal false, match.winner1?
80
- assert_equal false, match.draw?
81
- end
82
-
83
- def test_1_1_x_3_5
84
- match = Match.new
85
- match.score1 = 1
86
- match.score2 = 1
87
- match.score1et = nil
88
- match.score2et = nil
89
- match.score1p = 3
90
- match.score2p = 5
91
- match.calc_winner
92
-
93
- assert_equal 0, match.winner90
94
- assert_equal 2, match.winner
95
- assert_equal true, match.winner2?
96
- assert_equal false, match.winner1?
97
- assert_equal false, match.draw?
98
- end
99
-
100
- end # class TestWinner