sportdb-formats 1.0.5 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Manifest.txt +8 -11
  3. data/Rakefile +1 -1
  4. data/lib/sportdb/formats.rb +19 -0
  5. data/lib/sportdb/formats/country/country_index.rb +2 -2
  6. data/lib/sportdb/formats/event/event_index.rb +141 -0
  7. data/lib/sportdb/formats/event/event_reader.rb +183 -0
  8. data/lib/sportdb/formats/league/league_index.rb +22 -18
  9. data/lib/sportdb/formats/league/league_outline_reader.rb +27 -7
  10. data/lib/sportdb/formats/league/league_reader.rb +7 -1
  11. data/lib/sportdb/formats/match/mapper.rb +63 -63
  12. data/lib/sportdb/formats/match/mapper_teams.rb +1 -1
  13. data/lib/sportdb/formats/match/match_parser.rb +141 -193
  14. data/lib/sportdb/formats/match/match_parser_csv.rb +169 -25
  15. data/lib/sportdb/formats/match/match_status_parser.rb +86 -0
  16. data/lib/sportdb/formats/name_helper.rb +4 -1
  17. data/lib/sportdb/formats/package.rb +57 -9
  18. data/lib/sportdb/formats/parser_helper.rb +11 -2
  19. data/lib/sportdb/formats/score/score_formats.rb +19 -0
  20. data/lib/sportdb/formats/score/score_parser.rb +10 -2
  21. data/lib/sportdb/formats/season_utils.rb +0 -11
  22. data/lib/sportdb/formats/structs/group.rb +5 -12
  23. data/lib/sportdb/formats/structs/match.rb +7 -1
  24. data/lib/sportdb/formats/structs/round.rb +6 -13
  25. data/lib/sportdb/formats/structs/season.rb +114 -45
  26. data/lib/sportdb/formats/structs/standings.rb +30 -9
  27. data/lib/sportdb/formats/structs/team.rb +8 -2
  28. data/lib/sportdb/formats/team/club_index.rb +13 -11
  29. data/lib/sportdb/formats/team/club_index_history.rb +138 -0
  30. data/lib/sportdb/formats/team/club_reader_history.rb +203 -0
  31. data/lib/sportdb/formats/team/club_reader_props.rb +2 -3
  32. data/lib/sportdb/formats/version.rb +2 -2
  33. data/test/helper.rb +48 -81
  34. data/test/test_club_index_history.rb +107 -0
  35. data/test/test_club_reader_history.rb +212 -0
  36. data/test/test_country_reader.rb +2 -2
  37. data/test/test_datafile_package.rb +1 -1
  38. data/test/test_match_status_parser.rb +49 -0
  39. data/test/test_regex.rb +25 -7
  40. data/test/test_scores.rb +2 -0
  41. data/test/test_season.rb +68 -19
  42. metadata +12 -15
  43. data/test/test_conf.rb +0 -65
  44. data/test/test_csv_match_parser.rb +0 -114
  45. data/test/test_csv_match_parser_utils.rb +0 -20
  46. data/test/test_match_auto.rb +0 -72
  47. data/test/test_match_auto_champs.rb +0 -45
  48. data/test/test_match_auto_euro.rb +0 -37
  49. data/test/test_match_auto_worldcup.rb +0 -61
  50. data/test/test_match_champs.rb +0 -27
  51. data/test/test_match_eng.rb +0 -26
  52. data/test/test_match_euro.rb +0 -27
  53. data/test/test_match_worldcup.rb +0 -27
@@ -75,13 +75,13 @@ TXT
75
75
  assert_equal 'Czechoslovakia (-1992)', recs[0].name
76
76
  assert_equal 'TCH', recs[0].code
77
77
  assert_equal 'czechoslovakia', recs[0].key
78
- assert_equal ['Czechoslovakia'], recs[0].alt_names
78
+ assert_equal [], recs[0].alt_names
79
79
  assert_equal [], recs[0].tags
80
80
 
81
81
  assert_equal 'East Germany (-1989)', recs[3].name
82
82
  assert_equal 'GDR', recs[3].code
83
83
  assert_equal 'eastgermany', recs[3].key
84
- assert_equal ['East Germany'], recs[3].alt_names
84
+ assert_equal [], recs[3].alt_names
85
85
  assert_equal [], recs[3].tags
86
86
  end
87
87
 
@@ -16,7 +16,7 @@ class TestDatafilePackage < MiniTest::Test
16
16
  ].each do |eng|
17
17
  assert eng.find( '2015-16/.conf.txt' ).read.start_with?( '= English Premier League 2015/16' )
18
18
  assert eng.find( '2017-18/.conf.txt' ).read.start_with?( '= English Premier League 2017/18' )
19
- assert eng.find( '2015-16/1-premierleague-i.txt' ).read.start_with?( '= English Premier League 2015/16' )
19
+ assert eng.find( '2015-16/1-premierleague.txt' ).read.start_with?( '= English Premier League 2015/16' )
20
20
  end
21
21
 
22
22
  [Datafile::DirPackage.new( '../../../openfootball/austria' ),
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # to run use
5
+ # ruby -I ./lib -I ./test test/test_match_status_parser.rb
6
+
7
+
8
+ require 'helper'
9
+
10
+
11
+ class TestMatchStatusParser < MiniTest::Test
12
+
13
+ Status = SportDb::Status
14
+ StatusParser = SportDb::StatusParser
15
+
16
+ def test_find
17
+ [['awarded [cancelled] canceled [ddd]', Status::CANCELLED],
18
+ ['awarded [bbb; canceled] canceled [awarded; comments] eeee', Status::AWARDED],
19
+ ['aaa bbb ccc ddd eeee', nil],
20
+ ].each do |rec|
21
+ line = rec[0]
22
+ status_exp = rec[1]
23
+ puts "line (before): >#{line}<"
24
+ status = StatusParser.find!( line )
25
+ puts "status: >#{status}<"
26
+ puts "line (after): >#{line}<"
27
+ puts
28
+
29
+ assert_equal status_exp, status
30
+ end
31
+ end # method test_find
32
+
33
+ def test_parse
34
+ [['cancelled ddd', Status::CANCELLED],
35
+ ['CANCELLED', Status::CANCELLED],
36
+ ['can.', Status::CANCELLED],
37
+ ['awarded; comments', Status::AWARDED],
38
+ ['awd. - comments', Status::AWARDED],
39
+ ['aaa bbb ccc ddd eeee', nil],
40
+ ].each do |rec|
41
+ str = rec[0]
42
+ status_exp = rec[1]
43
+ assert_equal status_exp, StatusParser.parse( str )
44
+ end
45
+ end
46
+
47
+ end # class TestMatchStatusParser
48
+
49
+
@@ -9,9 +9,27 @@ require 'helper'
9
9
 
10
10
  class TestRegex < MiniTest::Test
11
11
 
12
+ HEADER_SEP_RE = SportDb::MatchParser::HEADER_SEP_RE
13
+
14
+ def test_header_sep
15
+ assert_equal ['Round', 'Fr+Sa Dec 11+12'], 'Round // Fr+Sa Dec 11+12'.split( HEADER_SEP_RE )
16
+ assert_equal ['Round 11', 'Fr+Sa Dec 11+12'], 'Round 11 /// Fr+Sa Dec 11+12'.split( HEADER_SEP_RE )
17
+ assert_equal ['Round 11', 'Fr+Sa Dec 11+12'], 'Round 11 -- Fr+Sa Dec 11+12'.split( HEADER_SEP_RE )
18
+ assert_equal ['Round 11', 'Fr+Sa Dec 11+12'], 'Round 11 --- Fr+Sa Dec 11+12'.split( HEADER_SEP_RE )
19
+ assert_equal ['Round 11', 'Fr+Sa Dec 11+12'], 'Round 11 ++ Fr+Sa Dec 11+12'.split( HEADER_SEP_RE )
20
+ assert_equal ['Round 11', 'Fr+Sa Dec 11+12'], 'Round 11 +++ Fr+Sa Dec 11+12'.split( HEADER_SEP_RE )
21
+ assert_equal ['Round 11', 'Fr+Sa Dec 11+12'], 'Round 11 || Fr+Sa Dec 11+12'.split( HEADER_SEP_RE )
22
+
23
+ assert_equal ['Final - Leg 1'], 'Final - Leg 1'.split( HEADER_SEP_RE )
24
+ assert_equal ['Final | Leg 1'], 'Final | Leg 1'.split( HEADER_SEP_RE )
25
+ assert_equal ['Final / Leg 1'], 'Final / Leg 1'.split( HEADER_SEP_RE )
26
+ assert_equal ['Final, Leg 1'], 'Final, Leg 1'.split( HEADER_SEP_RE )
27
+ end
28
+
29
+
12
30
  ADDR_MARKER_RE = SportDb::Import::ClubReader::ADDR_MARKER_RE
13
31
  B_TEAM_MARKER_RE = SportDb::Import::ClubReader::B_TEAM_MARKER_RE
14
-
32
+
15
33
  def test_addr
16
34
  assert '~ Wien' =~ ADDR_MARKER_RE
17
35
  assert 'Wien ~' =~ ADDR_MARKER_RE
@@ -22,13 +40,13 @@ class TestRegex < MiniTest::Test
22
40
  assert 'Fischhofgasse 12 /// 1100 Wien' =~ ADDR_MARKER_RE
23
41
 
24
42
  assert_nil 'Fischhofgasse 12 + 1100 Wien' =~ ADDR_MARKER_RE
25
- assert_nil 'Fischhofgasse 12++1100 Wien' =~ ADDR_MARKER_RE
43
+ assert_nil 'Fischhofgasse 12++1100 Wien' =~ ADDR_MARKER_RE ## todo/fix: make it a match!!! why? why not?
26
44
  assert_nil 'Fischhofgasse 12 / 1100 Wien' =~ ADDR_MARKER_RE
27
- assert_nil 'Fischhofgasse 12//1100 Wien' =~ ADDR_MARKER_RE
28
-
45
+ assert_nil 'Fischhofgasse 12//1100 Wien' =~ ADDR_MARKER_RE ## todo/fix: make it a match!!! why? why not?
46
+
29
47
  assert_nil 'Atlanta United FC, 2017, Atlanta › Georgia' =~ ADDR_MARKER_RE
30
48
  end
31
-
49
+
32
50
  def test_b_team
33
51
  assert 'b) Rapid Wien II' =~ B_TEAM_MARKER_RE
34
52
  assert '(b) Rapid Wien II' =~ B_TEAM_MARKER_RE
@@ -38,12 +56,12 @@ class TestRegex < MiniTest::Test
38
56
  assert '(ii.) Rapid Wien II' =~ B_TEAM_MARKER_RE
39
57
  assert '2) Rapid Wien II' =~ B_TEAM_MARKER_RE
40
58
  assert '(2) Rapid Wien II' =~ B_TEAM_MARKER_RE
41
-
59
+
42
60
  assert_nil '(3) Rapid Wien II' =~ B_TEAM_MARKER_RE
43
61
  assert_nil '(iii) Rapid Wien II' =~ B_TEAM_MARKER_RE
44
62
  assert_nil 'iii) Rapid Wien II' =~ B_TEAM_MARKER_RE
45
63
  assert_nil 'c) Rapid Wien II' =~ B_TEAM_MARKER_RE
46
64
  assert_nil '(c) Rapid Wien II' =~ B_TEAM_MARKER_RE
47
65
  end
48
-
66
+
49
67
  end # class TestRegex
@@ -80,12 +80,14 @@ class TestScores < MiniTest::Test
80
80
  [ '2-1aet (1-1, 0-0)', [0,0, 1,1, 2,1]],
81
81
  [ '2-1 A.E.T. (1-1, 0-0)', [0,0, 1,1, 2,1]],
82
82
  [ '2-1AET (1-1, 0-0)', [0,0, 1,1, 2,1]],
83
+ [ '2-1 a.e.t.', [nil,nil,nil,nil, 2,1]],
83
84
 
84
85
  [ '3-4 pen. 2-2 a.e.t. (1-1, 1-1)', [1,1, 1,1, 2,2, 3,4]],
85
86
  [ '3-4 pen 2-2 a.e.t. (1-1, 1-1)', [1,1, 1,1, 2,2, 3,4]],
86
87
  [ '3-4 pen 2-2 a.e.t. (1-1, 1-1)', [1,1, 1,1, 2,2, 3,4]],
87
88
  [ '3-4p 2-2aet (1-1, 1-1)', [1,1, 1,1, 2,2, 3,4]],
88
89
  [ '3-4PSO 2-2AET (1-1, 1-1)', [1,1, 1,1, 2,2, 3,4]],
90
+ [ '3-4 pen. 2-2 a.e.t.', [nil,nil,nil,nil, 2,2, 3,4]],
89
91
 
90
92
  [ '4-3 pen. 1-0 a.e.t. (1-0, )', [nil,nil, 1,0, 1,0, 4,3]],
91
93
  [ '3-4 pen. 2-1 a.e.t. (2-1, )', [nil,nil, 2,1, 2,1, 3,4]],
@@ -9,25 +9,35 @@ require 'helper'
9
9
 
10
10
  class TestSeason < MiniTest::Test
11
11
 
12
- Season = SportDb::Import::Season
13
-
14
- def test_path
15
- assert_equal '2010-11', Season.new( '2010-11' ).path
16
- assert_equal '2010-11', Season.new( '2010-2011' ).path
17
- assert_equal '2010-11', Season.new( '2010/11' ).path
18
- assert_equal '2010-11', Season.new( '2010/1' ).path
19
- assert_equal '2010-11', Season.new( '2010/2011' ).path
20
- assert_equal '2010', Season.new( '2010' ).path
21
-
22
- assert_equal '2010s/2010-11', Season.new( '2010-11' ).path( format: 'long' )
23
- assert_equal '2010s/2010-11', Season.new( '2010-2011' ).path( format: 'long' )
24
- assert_equal '2010s/2010', Season.new( '2010' ).path( format: 'long' )
25
-
26
- assert_equal '1999-00', Season.new( '1999-00' ).path
27
- assert_equal '1999-00', Season.new( '1999-2000' ).path
28
- assert_equal '1990s/1999-00', Season.new( '1999-00' ).path( format: 'long' )
29
- assert_equal '1990s/1999-00', Season.new( '1999-2000' ).path( format: 'long' )
30
- end # method test_path
12
+
13
+ def test_to_path
14
+ assert_equal '2010-11', Season.new( '2010-11' ).to_path
15
+ assert_equal '2010-11', Season.new( '2010-2011' ).to_path
16
+ assert_equal '2010-11', Season.new( '2010/11' ).to_path
17
+ assert_equal '2010-11', Season.new( '2010/1' ).to_path
18
+ assert_equal '2010-11', Season.new( '2010/2011' ).to_path
19
+ assert_equal '2010', Season.new( '2010' ).to_path
20
+
21
+ assert_equal '2010-11', Season.new( 2010, 2011 ).to_path
22
+ assert_equal '2010', Season.new( 2010 ).to_path
23
+
24
+ assert_equal '2010s/2010-11', Season.new( '2010-11' ).to_path( :decade )
25
+ assert_equal '2010s/2010-11', Season.new( '2010-2011' ).to_path( :decade )
26
+ assert_equal '2010s/2010', Season.new( '2010' ).to_path( :decade )
27
+
28
+ assert_equal '1999-00', Season.new( '1999-00' ).to_path
29
+ assert_equal '1999-00', Season.new( '1999-2000' ).to_path
30
+ assert_equal '1990s/1999-00', Season.new( '1999-00' ).to_path( :decade )
31
+ assert_equal '1990s/1999-00', Season.new( '1999-2000' ).to_path( :decade )
32
+
33
+ assert_equal '2000s/2010-11', Season.new( '2010-11' ).to_path( :century )
34
+ assert_equal '2000s/2010-11', Season.new( '2010-2011' ).to_path( :century )
35
+ assert_equal '2000s/2010', Season.new( '2010' ).to_path( :century )
36
+
37
+ assert_equal '1900s/1999-00', Season.new( '1999-00' ).to_path( :century )
38
+ assert_equal '1900s/1999-00', Season.new( '1999-2000' ).to_path( :century )
39
+ end # method test_to_path
40
+
31
41
 
32
42
  def test_key
33
43
  assert_equal '2010/11', Season.new( '2010-11' ).key
@@ -59,4 +69,43 @@ class TestSeason < MiniTest::Test
59
69
  assert_equal '1998/99', Season.new( '1999-00' ).prev.key
60
70
  assert_equal '1998/99', Season.new( '1999-2000' ).prev.key
61
71
  end
72
+
73
+ def test_next
74
+ assert_equal '2009/10', Season.new( '2008-09' ).next.key
75
+ assert_equal '2009/10', Season.new( '2008-2009' ).next.key
76
+ assert_equal '2009', Season.new( '2008' ).next.key
77
+
78
+ assert_equal '1998/99', Season.new( '1997-98' ).next.key
79
+ assert_equal '1998/99', Season.new( '1997-1998' ).next.key
80
+ end
81
+
82
+
83
+ def test_range
84
+ s2010 = Season.new( '2010' )..Season.new( '2019' )
85
+ pp s2010.to_a
86
+ # => [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
87
+
88
+ s2010 = Season.new( '2010-11')..Season.new( '2019-20')
89
+ pp s2010.to_a
90
+ # => [2010/11, 2011/12, 2012/13, 2013/14, 2014/15,
91
+ # 2015/16, 2016/17, 2017/18, 2018/19, 2019/20]
92
+
93
+ puts s2010 === Season.new( '2015-16' ) # true
94
+ puts s2010 === Season.new( '2015' ) # false - why? if using >= <=
95
+ puts s2010 === Season.new( '1999-00' ) # false
96
+ puts s2010 === Season.new( '2020-21' ) # false
97
+
98
+ puts Season.new( '2010-11' ) < Season.new( '2015' ) # true
99
+ puts Season.new( '2015' ) < Season.new( '2019-20') # true
100
+
101
+ puts Season.new( '2015' ) == Season.new( '2015-16') # false
102
+ puts Season.new( '2015' ) < Season.new( '2015-16') # true
103
+ puts Season.new( '2015' ) == Season.new( '2015') # true
104
+
105
+ puts
106
+ puts s2010.include? Season.new( '2015-16' ) # true
107
+ puts s2010.include? Season.new( '2015' ) # false
108
+ puts s2010.include? Season.new( '1999-00' ) # false
109
+ end
110
+
62
111
  end # class TestSeason
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb-formats
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-18 00:00:00.000000000 Z
11
+ date: 2020-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: alphabets
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 0.1.0
61
+ version: 0.1.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 0.1.0
68
+ version: 0.1.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubyzip
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -127,6 +127,8 @@ files:
127
127
  - lib/sportdb/formats/country/country_reader.rb
128
128
  - lib/sportdb/formats/datafile.rb
129
129
  - lib/sportdb/formats/datafile_package.rb
130
+ - lib/sportdb/formats/event/event_index.rb
131
+ - lib/sportdb/formats/event/event_reader.rb
130
132
  - lib/sportdb/formats/goals.rb
131
133
  - lib/sportdb/formats/league/league_index.rb
132
134
  - lib/sportdb/formats/league/league_outline_reader.rb
@@ -137,6 +139,7 @@ files:
137
139
  - lib/sportdb/formats/match/match_parser.rb
138
140
  - lib/sportdb/formats/match/match_parser_auto_conf.rb
139
141
  - lib/sportdb/formats/match/match_parser_csv.rb
142
+ - lib/sportdb/formats/match/match_status_parser.rb
140
143
  - lib/sportdb/formats/name_helper.rb
141
144
  - lib/sportdb/formats/outline_reader.rb
142
145
  - lib/sportdb/formats/package.rb
@@ -155,7 +158,9 @@ files:
155
158
  - lib/sportdb/formats/structs/team.rb
156
159
  - lib/sportdb/formats/structs/team_usage.rb
157
160
  - lib/sportdb/formats/team/club_index.rb
161
+ - lib/sportdb/formats/team/club_index_history.rb
158
162
  - lib/sportdb/formats/team/club_reader.rb
163
+ - lib/sportdb/formats/team/club_reader_history.rb
159
164
  - lib/sportdb/formats/team/club_reader_props.rb
160
165
  - lib/sportdb/formats/team/national_team_index.rb
161
166
  - lib/sportdb/formats/team/team_index.rb
@@ -163,14 +168,13 @@ files:
163
168
  - lib/sportdb/formats/version.rb
164
169
  - test/helper.rb
165
170
  - test/test_club_index.rb
171
+ - test/test_club_index_history.rb
166
172
  - test/test_club_reader.rb
173
+ - test/test_club_reader_history.rb
167
174
  - test/test_club_reader_props.rb
168
175
  - test/test_clubs.rb
169
- - test/test_conf.rb
170
176
  - test/test_country_index.rb
171
177
  - test/test_country_reader.rb
172
- - test/test_csv_match_parser.rb
173
- - test/test_csv_match_parser_utils.rb
174
178
  - test/test_csv_reader.rb
175
179
  - test/test_datafile.rb
176
180
  - test/test_datafile_package.rb
@@ -179,14 +183,7 @@ files:
179
183
  - test/test_league_outline_reader.rb
180
184
  - test/test_league_reader.rb
181
185
  - test/test_match.rb
182
- - test/test_match_auto.rb
183
- - test/test_match_auto_champs.rb
184
- - test/test_match_auto_euro.rb
185
- - test/test_match_auto_worldcup.rb
186
- - test/test_match_champs.rb
187
- - test/test_match_eng.rb
188
- - test/test_match_euro.rb
189
- - test/test_match_worldcup.rb
186
+ - test/test_match_status_parser.rb
190
187
  - test/test_name_helper.rb
191
188
  - test/test_outline_reader.rb
192
189
  - test/test_package.rb
@@ -1,65 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_conf.rb
6
-
7
-
8
- require 'helper'
9
-
10
-
11
- class TestConf < MiniTest::Test
12
-
13
- COUNTRY_RE = SportDb::ConfParser::COUNTRY_RE
14
- TABLE_RE = SportDb::ConfParser::TABLE_RE
15
-
16
- def test_re
17
- m=COUNTRY_RE.match( 'Manchester United › ENG' )
18
- pp m
19
- pp m[0]
20
- assert_equal 'ENG', m[:country]
21
-
22
- m=COUNTRY_RE.match( 'Manchester United›ENG' )
23
- pp m
24
- pp m[0]
25
- assert_equal 'ENG', m[:country]
26
-
27
-
28
- m=TABLE_RE.match( '1 Manchester City 38 32 4 2 106-27 100' )
29
- pp m
30
- assert_equal 'Manchester City', m[:team]
31
-
32
- m=TABLE_RE.match( '1. Manchester City 38 32 4 2 106:27 100' )
33
- pp m
34
- assert_equal 'Manchester City', m[:team]
35
-
36
- m=TABLE_RE.match( '- Manchester City 38 32 4 2 106 - 27 100' )
37
- pp m
38
- assert_equal 'Manchester City', m[:team]
39
-
40
-
41
- m=TABLE_RE.match( '1. 1. FC Mainz 38 32 4 2 106-27 100 [-7]' )
42
- pp m
43
- assert_equal '1. FC Mainz', m[:team]
44
- end
45
-
46
-
47
- def test_conf
48
- %w[conf/at_cup.txt
49
- conf/at_reg.txt
50
- conf/at_champs.txt
51
- conf/eng.txt
52
- conf/champs.txt
53
- ].each do |path|
54
- txt, exp = read_test( path )
55
-
56
- puts "testing conf #{path}..."
57
- teams = parse_conf( txt )
58
-
59
- ## note: json always returns hash tables with string keys (not symbols),
60
- ## thus, always stringify keys before comparing!!!!
61
- assert_equal exp, teams.deep_stringify_keys
62
- end
63
- end
64
-
65
- end # class TestConf
@@ -1,114 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_csv_match_parser.rb
6
-
7
-
8
- require 'helper'
9
-
10
-
11
- class TestCsvMatchParser < MiniTest::Test
12
-
13
- ##
14
- # Div,Date,HomeTeam,AwayTeam,FTHG,FTAG,FTR,HTHG,HTAG,HTR,
15
- # Referee,HS,AS,HST,AST,HF,AF,HC,AC,HY,AY,HR,AR,
16
- # B365H,B365D,B365A,BWH,BWD,BWA,IWH,IWD,IWA,LBH,LBD,LBA,PSH,PSD,PSA,
17
- # WHH,WHD,WHA,VCH,VCD,VCA,
18
- # Bb1X2,BbMxH,BbAvH,BbMxD,BbAvD,BbMxA,BbAvA,BbOU,BbMx>2.5,BbAv>2.5,BbMx<2.5,BbAv<2.5,
19
- # BbAH,BbAHh,BbMxAHH,BbAvAHH,BbMxAHA,BbAvAHA,PSCH,PSCD,PSCA
20
- def test_eng_filters
21
- path = "#{SportDb::Test.data_dir}/england/2017-18/E0.csv"
22
-
23
- matches = SportDb::CsvMatchParser.read( path,
24
- filters: { 'HomeTeam' => 'Arsenal' } )
25
-
26
- pp path
27
- pp matches[0..2]
28
-
29
- m=matches[0]
30
- assert_equal '2017-08-11', m.date
31
- assert_equal 4, m.score1
32
- assert_equal 3, m.score2
33
- assert_equal 2, m.score1i
34
- assert_equal 2, m.score2i
35
- assert_equal 'Arsenal', m.team1
36
- assert_equal 'Leicester', m.team2
37
-
38
- m=matches[1]
39
- assert_equal '2017-09-09', m.date
40
- assert_equal 3, m.score1
41
- assert_equal 0, m.score2
42
- assert_equal 2, m.score1i
43
- assert_equal 0, m.score2i
44
- assert_equal 'Arsenal', m.team1
45
- assert_equal 'Bournemouth', m.team2
46
- end
47
-
48
-
49
- def test_eng_headers
50
- path = "#{SportDb::Test.data_dir}/england/2017-18/E0.csv"
51
-
52
- headers = { team1: 'HomeTeam',
53
- team2: 'AwayTeam',
54
- date: 'Date',
55
- score1: 'FTHG',
56
- score2: 'FTAG' }
57
-
58
- matches = SportDb::CsvMatchParser.read( path, headers: headers )
59
-
60
- pp path
61
- pp matches[0..2]
62
-
63
- m=matches[0]
64
- assert_equal '2017-08-11', m.date
65
- assert_equal 4, m.score1
66
- assert_equal 3, m.score2
67
- assert_nil m.score1i ## todo/fix: missing half time (ht) score !!!!
68
- assert_nil m.score2i ## todo/fix: missing half time (ht) score !!!!
69
- assert_equal 'Arsenal', m.team1
70
- assert_equal 'Leicester', m.team2
71
-
72
- m=matches[1]
73
- assert_equal '2017-08-12', m.date
74
- assert_equal 0, m.score1
75
- assert_equal 2, m.score2
76
- assert_nil m.score1i ## todo/fix: missing half time (ht) score !!!!
77
- assert_nil m.score2i ## todo/fix: missing half time (ht) score !!!!
78
- assert_equal 'Brighton', m.team1
79
- assert_equal 'Man City', m.team2
80
- end
81
-
82
-
83
- ###
84
- # Country,League,Season,Date,Time,Home,Away,HG,AG,
85
- # Res,PH,PD,PA,MaxH,MaxD,MaxA,AvgH,AvgD,AvgA
86
- def test_at
87
- path = "#{SportDb::Test.data_dir}/austria/AUT.csv"
88
-
89
- matches = SportDb::CsvMatchParser.read( path, filters: { 'Season' => '2017/2018' } )
90
-
91
- pp matches[0..2]
92
- pp path
93
-
94
- m=matches[0]
95
- assert_equal '2017-07-22', m.date
96
- assert_equal 2, m.score1
97
- assert_equal 2, m.score2
98
- assert_nil m.score1i ## todo/fix: missing half time (ht) score !!!!
99
- assert_nil m.score2i ## todo/fix: missing half time (ht) score !!!!
100
- assert_equal 'Rapid Vienna', m.team1
101
- assert_equal 'Mattersburg', m.team2
102
-
103
- m=matches[1]
104
- assert_equal '2017-07-22', m.date
105
- assert_equal 0, m.score1
106
- assert_equal 2, m.score2
107
- assert_nil m.score1i ## todo/fix: missing half time (ht) score !!!!
108
- assert_nil m.score2i ## todo/fix: missing half time (ht) score !!!!
109
- assert_equal 'AC Wolfsberger', m.team1
110
- assert_equal 'Salzburg', m.team2
111
- end
112
-
113
-
114
- end # class TestCsvMatchParser