antw-dyno 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +19 -0
- data/README.markdown +68 -0
- data/Rakefile +45 -0
- data/VERSION.yml +4 -0
- data/lib/dyno.rb +22 -0
- data/lib/dyno/competitor.rb +55 -0
- data/lib/dyno/event.rb +16 -0
- data/lib/dyno/parsers/gtr2_parser.rb +13 -0
- data/lib/dyno/parsers/race07_parser.rb +130 -0
- data/lib/dyno/parsers/rfactor_parser.rb +138 -0
- data/spec/competitor_spec.rb +129 -0
- data/spec/event_spec.rb +59 -0
- data/spec/fixtures/gtr2/full.ini +0 -0
- data/spec/fixtures/gtr2/header_no_track.ini +0 -0
- data/spec/fixtures/gtr2/header_only.ini +0 -0
- data/spec/fixtures/gtr2/no_header_section.ini +0 -0
- data/spec/fixtures/gtr2/single_driver.ini +0 -0
- data/spec/fixtures/race07/full.ini +131 -0
- data/spec/fixtures/race07/header_no_track.ini +11 -0
- data/spec/fixtures/race07/header_only.ini +12 -0
- data/spec/fixtures/race07/no_header_section.ini +6 -0
- data/spec/fixtures/race07/no_steam_id.ini +37 -0
- data/spec/fixtures/race07/single_driver.ini +37 -0
- data/spec/fixtures/race07/single_driver_dnf.ini +34 -0
- data/spec/fixtures/race07/single_driver_dsq.ini +34 -0
- data/spec/fixtures/readme.markdown +5 -0
- data/spec/fixtures/rfactor/arca.xml +187 -0
- data/spec/fixtures/rfactor/event_only.xml +43 -0
- data/spec/fixtures/rfactor/full.xml +1023 -0
- data/spec/fixtures/rfactor/missing_root.xml +6 -0
- data/spec/fixtures/rfactor/single_driver.xml +85 -0
- data/spec/fixtures/rfactor/single_driver_dnf.xml +80 -0
- data/spec/fixtures/rfactor/single_driver_dsq.xml +79 -0
- data/spec/parsers/gtr2_parser_spec.rb +199 -0
- data/spec/parsers/race07_parser_spec.rb +155 -0
- data/spec/parsers/rfactor_parser_spec.rb +158 -0
- data/spec/spec_helper.rb +3 -0
- metadata +107 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE rF [
|
3
|
+
<!ENTITY rFEnt "rFactor Entity">
|
4
|
+
]>
|
5
|
+
<rFactorXML version="1.0">
|
6
|
+
<RaceResults>
|
7
|
+
<Setting>Multiplayer</Setting>
|
8
|
+
<ServerName>RACEDEPARTMENT.COM EU 2</ServerName>
|
9
|
+
<PlayerFile>DedicatedServer</PlayerFile>
|
10
|
+
<DateTime>1229826153</DateTime>
|
11
|
+
<TimeString>2008/12/21 03:22:33</TimeString>
|
12
|
+
<Mod>JF3_2007.rfm</Mod>
|
13
|
+
<Season></Season>
|
14
|
+
<TrackVenue>Suzuka Circuit</TrackVenue>
|
15
|
+
<TrackCourse>Suzuka-2005</TrackCourse>
|
16
|
+
<TrackEvent>Japanese Grand Prix - 2005</TrackEvent>
|
17
|
+
<TrackLength>5834.1</TrackLength>
|
18
|
+
<GameVersion>1.255</GameVersion>
|
19
|
+
<Dedicated>1</Dedicated>
|
20
|
+
<ConnectionType upload="8042" download="8042">Custom</ConnectionType>
|
21
|
+
<MOTD>RACEDEPARTMENT.COM - blurring the line between real and virtual motorsports</MOTD>
|
22
|
+
<RaceLaps>17</RaceLaps>
|
23
|
+
<RaceTime>0</RaceTime>
|
24
|
+
<MechFailRate>1</MechFailRate>
|
25
|
+
<DamageMult>100</DamageMult>
|
26
|
+
<FuelMult>1</FuelMult>
|
27
|
+
<TireMult>1</TireMult>
|
28
|
+
<VehiclesAllowed>|JF3_2007</VehiclesAllowed>
|
29
|
+
<ParcFerme>3</ParcFerme>
|
30
|
+
<FixedSetups>0</FixedSetups>
|
31
|
+
<FreeSettings>11</FreeSettings>
|
32
|
+
<FixedUpgrades>1</FixedUpgrades>
|
33
|
+
<Race>
|
34
|
+
<DateTime>1229892973</DateTime>
|
35
|
+
<TimeString>2008/12/21 21:56:13</TimeString>
|
36
|
+
<Laps>17</Laps>
|
37
|
+
<Minutes>0</Minutes>
|
38
|
+
<Stream>
|
39
|
+
</Stream>
|
40
|
+
<MostLapsCompleted>17</MostLapsCompleted>
|
41
|
+
<Driver>
|
42
|
+
<Name>Zach Evans</Name>
|
43
|
+
<Connected>1</Connected>
|
44
|
+
<VehFile>3F306_2007.VEH</VehFile>
|
45
|
+
<UpgradeCode>15000000 00000000</UpgradeCode>
|
46
|
+
<VehName>Roberto Streit</VehName>
|
47
|
+
<CarType>JF3_2007</CarType>
|
48
|
+
<CarClass>JF3_2007</CarClass>
|
49
|
+
<CarNumber>3</CarNumber>
|
50
|
+
<TeamName>07-03 INGING MOTORSPORT</TeamName>
|
51
|
+
<isPlayer>1</isPlayer>
|
52
|
+
<GridPos>11</GridPos>
|
53
|
+
<Position>1</Position>
|
54
|
+
<ClassGridPos>11</ClassGridPos>
|
55
|
+
<ClassPosition>1</ClassPosition>
|
56
|
+
<Points>20</Points>
|
57
|
+
<ClassPoints>20</ClassPoints>
|
58
|
+
<LapRankIncludingDiscos>3</LapRankIncludingDiscos>
|
59
|
+
<Lap num="1" p="3" et="40.0211" s1="52.3539" s2="55.6448" s3="22.5232" fuel="0.843">130.5218</Lap>
|
60
|
+
<Lap num="2" p="3" et="170.5430" s1="41.8527" s2="55.3994" s3="22.4502" fuel="0.800">119.7023</Lap>
|
61
|
+
<Lap num="3" p="2" et="290.2452" s1="42.3889" s2="55.5416" s3="22.2890" fuel="0.761">120.2195</Lap>
|
62
|
+
<Lap num="4" p="2" et="410.4647" s1="41.9483" s2="55.3238" s3="22.3402" fuel="0.718">119.6123</Lap>
|
63
|
+
<Lap num="5" p="2" et="530.0770" s1="41.8170" s2="56.1017" s3="22.3548" fuel="0.675">120.2735</Lap>
|
64
|
+
<Lap num="6" p="2" et="650.3504" s1="41.8205" s2="55.4031" s3="22.4181" fuel="0.631">119.6417</Lap>
|
65
|
+
<Lap num="7" p="2" et="769.9921" s1="41.9503" s2="55.1721" s3="22.5586" fuel="0.588">119.6810</Lap>
|
66
|
+
<Lap num="8" p="1" et="889.6732" s1="41.8701" s2="55.3826" s3="22.7209" fuel="0.545">119.9735</Lap>
|
67
|
+
<Lap num="9" p="1" et="1009.6467" s1="42.2173" s2="55.1745" s3="22.6508" fuel="0.502">120.0426</Lap>
|
68
|
+
<Lap num="10" p="1" et="1129.6892" s1="41.8203" s2="55.3497" s3="22.8513" fuel="0.459">120.0213</Lap>
|
69
|
+
<Lap num="11" p="1" et="1249.7104" s1="42.6233" s2="55.4770" s3="22.4602" fuel="0.416">120.5605</Lap>
|
70
|
+
<Lap num="12" p="1" et="1370.2710" s1="41.9227" s2="55.1716" s3="22.2617" fuel="0.373">119.3561</Lap>
|
71
|
+
<Lap num="13" p="1" et="1489.6271" s1="41.7863" s2="55.9762" s3="22.5324" fuel="0.329">120.2949</Lap>
|
72
|
+
<Lap num="14" p="1" et="1609.9219" s1="42.1470" s2="55.9459" s3="22.4242" fuel="0.286">120.5171</Lap>
|
73
|
+
<Lap num="15" p="1" et="1730.4390" s1="42.1881" s2="55.5917" s3="22.3778" fuel="0.243">120.1576</Lap>
|
74
|
+
<Lap num="16" p="1" et="1850.5966" s1="42.1523" s2="54.9114" s3="22.2956" fuel="0.200">119.3593</Lap>
|
75
|
+
<Lap num="17" p="1" et="1969.9559" s1="42.1447" s2="55.2251" s3="22.3365" fuel="0.157">119.7063</Lap>
|
76
|
+
<BestLapTime>119.3561</BestLapTime>
|
77
|
+
<FinishTime>2049.6411</FinishTime>
|
78
|
+
<Laps>17</Laps>
|
79
|
+
<Pitstops>0</Pitstops>
|
80
|
+
<FinishStatus>Finished Normally</FinishStatus>
|
81
|
+
<ControlAndAids startLap="1" endLap="17">PlayerControl,Clutch,AutoBlip</ControlAndAids>
|
82
|
+
</Driver>
|
83
|
+
</Race>
|
84
|
+
</RaceResults>
|
85
|
+
</rFactorXML>
|
@@ -0,0 +1,80 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE rF [
|
3
|
+
<!ENTITY rFEnt "rFactor Entity">
|
4
|
+
]>
|
5
|
+
<rFactorXML version="1.0">
|
6
|
+
<RaceResults>
|
7
|
+
<Setting>Multiplayer</Setting>
|
8
|
+
<ServerName>RACEDEPARTMENT.COM EU 2</ServerName>
|
9
|
+
<PlayerFile>DedicatedServer</PlayerFile>
|
10
|
+
<DateTime>1229826153</DateTime>
|
11
|
+
<TimeString>2008/12/21 03:22:33</TimeString>
|
12
|
+
<Mod>JF3_2007.rfm</Mod>
|
13
|
+
<Season></Season>
|
14
|
+
<TrackVenue>Suzuka Circuit</TrackVenue>
|
15
|
+
<TrackCourse>Suzuka-2005</TrackCourse>
|
16
|
+
<TrackEvent>Japanese Grand Prix - 2005</TrackEvent>
|
17
|
+
<TrackLength>5834.1</TrackLength>
|
18
|
+
<GameVersion>1.255</GameVersion>
|
19
|
+
<Dedicated>1</Dedicated>
|
20
|
+
<ConnectionType upload="8042" download="8042">Custom</ConnectionType>
|
21
|
+
<MOTD>RACEDEPARTMENT.COM - blurring the line between real and virtual motorsports</MOTD>
|
22
|
+
<RaceLaps>17</RaceLaps>
|
23
|
+
<RaceTime>0</RaceTime>
|
24
|
+
<MechFailRate>1</MechFailRate>
|
25
|
+
<DamageMult>100</DamageMult>
|
26
|
+
<FuelMult>1</FuelMult>
|
27
|
+
<TireMult>1</TireMult>
|
28
|
+
<VehiclesAllowed>|JF3_2007</VehiclesAllowed>
|
29
|
+
<ParcFerme>3</ParcFerme>
|
30
|
+
<FixedSetups>0</FixedSetups>
|
31
|
+
<FreeSettings>11</FreeSettings>
|
32
|
+
<FixedUpgrades>1</FixedUpgrades>
|
33
|
+
<Race>
|
34
|
+
<DateTime>1229892973</DateTime>
|
35
|
+
<TimeString>2008/12/21 21:56:13</TimeString>
|
36
|
+
<Laps>17</Laps>
|
37
|
+
<Minutes>0</Minutes>
|
38
|
+
<Stream>
|
39
|
+
</Stream>
|
40
|
+
<MostLapsCompleted>17</MostLapsCompleted>
|
41
|
+
<Driver>
|
42
|
+
<Name>Tom M. Hall</Name>
|
43
|
+
<Connected>1</Connected>
|
44
|
+
<VehFile>01F307.VEH</VehFile>
|
45
|
+
<UpgradeCode>00000000 00000000</UpgradeCode>
|
46
|
+
<VehName>Oliver Jarvis</VehName>
|
47
|
+
<CarType>JF3_2007</CarType>
|
48
|
+
<CarClass>JF3_2007</CarClass>
|
49
|
+
<CarNumber>1L</CarNumber>
|
50
|
+
<TeamName>07-01 DHG TOM'S</TeamName>
|
51
|
+
<isPlayer>0</isPlayer>
|
52
|
+
<GridPos>1</GridPos>
|
53
|
+
<Position>7</Position>
|
54
|
+
<ClassGridPos>1</ClassGridPos>
|
55
|
+
<ClassPosition>7</ClassPosition>
|
56
|
+
<Points>4</Points>
|
57
|
+
<ClassPoints>4</ClassPoints>
|
58
|
+
<LapRankIncludingDiscos>2</LapRankIncludingDiscos>
|
59
|
+
<Lap num="1" p="1" et="40.0211" s1="46.6755" s2="56.8494" s3="22.6522" fuel="0.957">126.1771</Lap>
|
60
|
+
<Lap num="2" p="1" et="166.1982" s1="42.3175" s2="55.4714" s3="22.5711" fuel="0.910">120.3600</Lap>
|
61
|
+
<Lap num="3" p="1" et="286.5582" s1="41.4937" s2="55.3808" s3="22.3169" fuel="0.867">119.1914</Lap>
|
62
|
+
<Lap num="4" p="1" et="405.7496" s1="42.2348" s2="55.2814" s3="22.5264" fuel="0.827">120.0426</Lap>
|
63
|
+
<Lap num="5" p="1" et="525.7922" s1="41.7521" s2="55.2192" s3="22.8702" fuel="0.784">119.8415</Lap>
|
64
|
+
<Lap num="6" p="1" et="645.6337" s1="42.1599" s2="55.3416" s3="22.6780" fuel="0.741">120.1795</Lap>
|
65
|
+
<Lap num="7" p="1" et="765.8132" s1="42.0617" s2="54.9901" s3="22.6024" fuel="0.698">119.6542</Lap>
|
66
|
+
<Lap num="8" p="2" et="885.4674" s1="41.6767" s2="59.4520" s3="23.4462" fuel="0.651">124.5749</Lap>
|
67
|
+
<Lap num="9" p="2" et="1010.0424" s1="41.9974" s2="55.6552" s3="22.4668" fuel="0.612">120.1193</Lap>
|
68
|
+
<Lap num="10" p="2" et="1130.1616" s1="41.6227" s2="55.1515" s3="23.0518" fuel="0.569">119.8260</Lap>
|
69
|
+
<Lap num="11" p="2" et="1249.9877" s1="42.8742" s2="55.1942" s3="22.8089" fuel="0.529">120.8774</Lap>
|
70
|
+
<Lap num="12" p="2" et="1370.8651" s1="42.0483" s2="54.9263" s3="22.2972" fuel="0.486">119.2719</Lap>
|
71
|
+
<BestLapTime>119.1914</BestLapTime>
|
72
|
+
<Laps>12</Laps>
|
73
|
+
<Pitstops>0</Pitstops>
|
74
|
+
<FinishStatus>DNF</FinishStatus>
|
75
|
+
<DNFReason>Suspension</DNFReason>
|
76
|
+
<ControlAndAids startLap="1" endLap="12">PlayerControl,Clutch,AutoBlip</ControlAndAids>
|
77
|
+
</Driver>
|
78
|
+
</Race>
|
79
|
+
</RaceResults>
|
80
|
+
</rFactorXML>
|
@@ -0,0 +1,79 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE rF [
|
3
|
+
<!ENTITY rFEnt "rFactor Entity">
|
4
|
+
]>
|
5
|
+
<rFactorXML version="1.0">
|
6
|
+
<RaceResults>
|
7
|
+
<Setting>Multiplayer</Setting>
|
8
|
+
<ServerName>RACEDEPARTMENT.COM EU 2</ServerName>
|
9
|
+
<PlayerFile>DedicatedServer</PlayerFile>
|
10
|
+
<DateTime>1229826153</DateTime>
|
11
|
+
<TimeString>2008/12/21 03:22:33</TimeString>
|
12
|
+
<Mod>JF3_2007.rfm</Mod>
|
13
|
+
<Season></Season>
|
14
|
+
<TrackVenue>Suzuka Circuit</TrackVenue>
|
15
|
+
<TrackCourse>Suzuka-2005</TrackCourse>
|
16
|
+
<TrackEvent>Japanese Grand Prix - 2005</TrackEvent>
|
17
|
+
<TrackLength>5834.1</TrackLength>
|
18
|
+
<GameVersion>1.255</GameVersion>
|
19
|
+
<Dedicated>1</Dedicated>
|
20
|
+
<ConnectionType upload="8042" download="8042">Custom</ConnectionType>
|
21
|
+
<MOTD>RACEDEPARTMENT.COM - blurring the line between real and virtual motorsports</MOTD>
|
22
|
+
<RaceLaps>17</RaceLaps>
|
23
|
+
<RaceTime>0</RaceTime>
|
24
|
+
<MechFailRate>1</MechFailRate>
|
25
|
+
<DamageMult>100</DamageMult>
|
26
|
+
<FuelMult>1</FuelMult>
|
27
|
+
<TireMult>1</TireMult>
|
28
|
+
<VehiclesAllowed>|JF3_2007</VehiclesAllowed>
|
29
|
+
<ParcFerme>3</ParcFerme>
|
30
|
+
<FixedSetups>0</FixedSetups>
|
31
|
+
<FreeSettings>11</FreeSettings>
|
32
|
+
<FixedUpgrades>1</FixedUpgrades>
|
33
|
+
<Race>
|
34
|
+
<DateTime>1229892973</DateTime>
|
35
|
+
<TimeString>2008/12/21 21:56:13</TimeString>
|
36
|
+
<Laps>17</Laps>
|
37
|
+
<Minutes>0</Minutes>
|
38
|
+
<Stream>
|
39
|
+
</Stream>
|
40
|
+
<MostLapsCompleted>17</MostLapsCompleted>
|
41
|
+
<Driver>
|
42
|
+
<Name>Tom M. Hall</Name>
|
43
|
+
<Connected>1</Connected>
|
44
|
+
<VehFile>01F307.VEH</VehFile>
|
45
|
+
<UpgradeCode>00000000 00000000</UpgradeCode>
|
46
|
+
<VehName>Oliver Jarvis</VehName>
|
47
|
+
<CarType>JF3_2007</CarType>
|
48
|
+
<CarClass>JF3_2007</CarClass>
|
49
|
+
<CarNumber>1L</CarNumber>
|
50
|
+
<TeamName>07-01 DHG TOM'S</TeamName>
|
51
|
+
<isPlayer>0</isPlayer>
|
52
|
+
<GridPos>1</GridPos>
|
53
|
+
<Position>7</Position>
|
54
|
+
<ClassGridPos>1</ClassGridPos>
|
55
|
+
<ClassPosition>7</ClassPosition>
|
56
|
+
<Points>4</Points>
|
57
|
+
<ClassPoints>4</ClassPoints>
|
58
|
+
<LapRankIncludingDiscos>2</LapRankIncludingDiscos>
|
59
|
+
<Lap num="1" p="1" et="40.0211" s1="46.6755" s2="56.8494" s3="22.6522" fuel="0.957">126.1771</Lap>
|
60
|
+
<Lap num="2" p="1" et="166.1982" s1="42.3175" s2="55.4714" s3="22.5711" fuel="0.910">120.3600</Lap>
|
61
|
+
<Lap num="3" p="1" et="286.5582" s1="41.4937" s2="55.3808" s3="22.3169" fuel="0.867">119.1914</Lap>
|
62
|
+
<Lap num="4" p="1" et="405.7496" s1="42.2348" s2="55.2814" s3="22.5264" fuel="0.827">120.0426</Lap>
|
63
|
+
<Lap num="5" p="1" et="525.7922" s1="41.7521" s2="55.2192" s3="22.8702" fuel="0.784">119.8415</Lap>
|
64
|
+
<Lap num="6" p="1" et="645.6337" s1="42.1599" s2="55.3416" s3="22.6780" fuel="0.741">120.1795</Lap>
|
65
|
+
<Lap num="7" p="1" et="765.8132" s1="42.0617" s2="54.9901" s3="22.6024" fuel="0.698">119.6542</Lap>
|
66
|
+
<Lap num="8" p="2" et="885.4674" s1="41.6767" s2="59.4520" s3="23.4462" fuel="0.651">124.5749</Lap>
|
67
|
+
<Lap num="9" p="2" et="1010.0424" s1="41.9974" s2="55.6552" s3="22.4668" fuel="0.612">120.1193</Lap>
|
68
|
+
<Lap num="10" p="2" et="1130.1616" s1="41.6227" s2="55.1515" s3="23.0518" fuel="0.569">119.8260</Lap>
|
69
|
+
<Lap num="11" p="2" et="1249.9877" s1="42.8742" s2="55.1942" s3="22.8089" fuel="0.529">120.8774</Lap>
|
70
|
+
<Lap num="12" p="2" et="1370.8651" s1="42.0483" s2="54.9263" s3="22.2972" fuel="0.486">119.2719</Lap>
|
71
|
+
<BestLapTime>119.1914</BestLapTime>
|
72
|
+
<Laps>12</Laps>
|
73
|
+
<Pitstops>0</Pitstops>
|
74
|
+
<FinishStatus>DQ</FinishStatus>
|
75
|
+
<ControlAndAids startLap="1" endLap="12">PlayerControl,Clutch,AutoBlip</ControlAndAids>
|
76
|
+
</Driver>
|
77
|
+
</Race>
|
78
|
+
</RaceResults>
|
79
|
+
</rFactorXML>
|
@@ -0,0 +1,199 @@
|
|
1
|
+
require File.join( File.dirname(__FILE__), '..', 'spec_helper' )
|
2
|
+
|
3
|
+
describe Dyno::Parsers::GTR2Parser do
|
4
|
+
|
5
|
+
it 'should respond to .parse' do
|
6
|
+
Dyno::Parsers::GTR2Parser.should respond_to(:parse)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should respond to .parse_file' do
|
10
|
+
Dyno::Parsers::GTR2Parser.should respond_to(:parse_file)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should respond to #parse' do
|
14
|
+
Dyno::Parsers::GTR2Parser.public_instance_methods.should include('parse')
|
15
|
+
end
|
16
|
+
|
17
|
+
# --------------
|
18
|
+
# Event parsing.
|
19
|
+
|
20
|
+
|
21
|
+
describe 'parse_event!' do
|
22
|
+
before(:all) do
|
23
|
+
@event = Dyno::Parsers::GTR2Parser.parse_file(
|
24
|
+
'spec/fixtures/gtr2/header_only.ini'
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should set the mod used' do
|
29
|
+
@event.game.should == 'GT Legends'
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should correctly set the game version' do
|
33
|
+
# 1.100
|
34
|
+
@event.game_version.should == 1.1 # (close enough)
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should correctly set the event time' do
|
38
|
+
# 2009/01/15 21:25:31
|
39
|
+
@event.time.should == Time.local(2009, 1, 15, 21, 25, 31)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should correctly set the track' do
|
43
|
+
@event.track.should == 'Nuerburgring'
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should not set the track if one could not be discerned' do
|
47
|
+
event = Dyno::Parsers::GTR2Parser.parse_file(
|
48
|
+
'spec/fixtures/gtr2/header_no_track.ini'
|
49
|
+
)
|
50
|
+
|
51
|
+
event.track.should be_nil
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should whine loudly if there is no "Header" section' do
|
55
|
+
lambda {
|
56
|
+
Dyno::Parsers::GTR2Parser.parse_file(
|
57
|
+
'spec/fixtures/gtr2/no_header_section.ini'
|
58
|
+
)
|
59
|
+
}.should raise_error(Dyno::MalformedInputError)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# -------------------
|
64
|
+
# Competitor parsing.
|
65
|
+
|
66
|
+
describe 'parse_competitors!' do
|
67
|
+
before(:all) do
|
68
|
+
@event = Dyno::Parsers::GTR2Parser.parse_file(
|
69
|
+
'spec/fixtures/gtr2/single_driver.ini'
|
70
|
+
)
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should set the driver name correctly' do
|
74
|
+
@event.competitors.first.name.should == 'Brooke Evans'
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should set the vehicle correctly' do
|
78
|
+
@event.competitors.first.vehicle.should == 'Abarth 1000TC'
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'should set the lap count correctly' do
|
82
|
+
@event.competitors.first.laps.should == 57
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should convert the race time to a float' do
|
86
|
+
@event.competitors.first.race_time.should == 3064.24
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should convert the best lap time to a float' do
|
90
|
+
@event.competitors.first.best_lap.should == 50.301
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should correctly set the competitors lap times" do
|
94
|
+
@event.competitors.first.lap_times.should == [
|
95
|
+
70.567, # Lap=( 0, -1.000, 1:10.567)
|
96
|
+
173.678, # Lap=( 1, 110.474, 2:53.678)
|
97
|
+
51.933, # Lap=( 2, 284.151, 0:51.933)
|
98
|
+
52.017, # Lap=( 3, 336.084, 0:52.017)
|
99
|
+
51.391, # Lap=( 4, 388.101, 0:51.391)
|
100
|
+
50.933, # Lap=( 5, 439.492, 0:50.933)
|
101
|
+
51.078, # Lap=( 6, 490.424, 0:51.078)
|
102
|
+
51.198, # Lap=( 7, 541.502, 0:51.198)
|
103
|
+
51.226, # Lap=( 8, 592.700, 0:51.226)
|
104
|
+
51.048, # Lap=( 9, 643.926, 0:51.048)
|
105
|
+
50.619, # Lap=(10, 694.974, 0:50.619)
|
106
|
+
50.707, # Lap=(11, 745.593, 0:50.707)
|
107
|
+
50.911, # Lap=(12, 796.300, 0:50.911)
|
108
|
+
51.164, # Lap=(13, 847.210, 0:51.164)
|
109
|
+
58.389, # Lap=(14, 898.374, 0:58.389)
|
110
|
+
50.537, # Lap=(15, 956.763, 0:50.537)
|
111
|
+
51.526, # Lap=(16, 1007.300, 0:51.526)
|
112
|
+
50.850, # Lap=(17, 1058.826, 0:50.850)
|
113
|
+
51.110, # Lap=(18, 1109.676, 0:51.110)
|
114
|
+
50.539, # Lap=(19, 1160.786, 0:50.539)
|
115
|
+
50.834, # Lap=(20, 1211.325, 0:50.834)
|
116
|
+
50.747, # Lap=(21, 1262.159, 0:50.747)
|
117
|
+
51.428, # Lap=(22, 1312.906, 0:51.428)
|
118
|
+
50.301, # Lap=(23, 1364.334, 0:50.301)
|
119
|
+
50.658, # Lap=(24, 1414.635, 0:50.658)
|
120
|
+
50.681, # Lap=(25, 1465.293, 0:50.681)
|
121
|
+
50.710, # Lap=(26, 1515.974, 0:50.710)
|
122
|
+
51.151, # Lap=(27, 1566.683, 0:51.151)
|
123
|
+
51.321, # Lap=(28, 1617.834, 0:51.321)
|
124
|
+
52.063, # Lap=(29, 1669.155, 0:52.063)
|
125
|
+
50.639, # Lap=(30, 1721.218, 0:50.639)
|
126
|
+
51.135, # Lap=(31, 1771.857, 0:51.135)
|
127
|
+
51.001, # Lap=(32, 1822.992, 0:51.001)
|
128
|
+
51.648, # Lap=(33, 1873.993, 0:51.648)
|
129
|
+
52.716, # Lap=(34, 1925.641, 0:52.716)
|
130
|
+
51.361, # Lap=(35, 1978.357, 0:51.361)
|
131
|
+
50.680, # Lap=(36, 2029.718, 0:50.680)
|
132
|
+
50.842, # Lap=(37, 2080.397, 0:50.842)
|
133
|
+
50.552, # Lap=(38, 2131.240, 0:50.552)
|
134
|
+
51.529, # Lap=(39, 2181.791, 0:51.529)
|
135
|
+
50.987, # Lap=(40, 2233.320, 0:50.987)
|
136
|
+
54.226, # Lap=(41, 2284.307, 0:54.226)
|
137
|
+
51.379, # Lap=(42, 2338.533, 0:51.379)
|
138
|
+
50.680, # Lap=(43, 2389.912, 0:50.680)
|
139
|
+
50.629, # Lap=(44, 2440.592, 0:50.629)
|
140
|
+
50.645, # Lap=(45, 2491.222, 0:50.645)
|
141
|
+
50.832, # Lap=(46, 2541.866, 0:50.832)
|
142
|
+
50.488, # Lap=(47, 2592.698, 0:50.488)
|
143
|
+
50.728, # Lap=(48, 2643.187, 0:50.728)
|
144
|
+
51.133, # Lap=(49, 2693.915, 0:51.133)
|
145
|
+
51.035, # Lap=(50, 2745.048, 0:51.035)
|
146
|
+
50.612, # Lap=(51, 2796.083, 0:50.612)
|
147
|
+
50.669, # Lap=(52, 2846.695, 0:50.669)
|
148
|
+
50.849, # Lap=(53, 2897.364, 0:50.849)
|
149
|
+
51.833, # Lap=(54, 2948.213, 0:51.833)
|
150
|
+
53.271, # Lap=(55, 3000.046, 0:53.271)
|
151
|
+
50.831 # Lap=(56, 3053.317, 0:50.831)
|
152
|
+
]
|
153
|
+
end
|
154
|
+
|
155
|
+
it 'should correctly sort drivers by their finishing time, and assign their position' do
|
156
|
+
event = Dyno::Parsers::GTR2Parser.parse_file(
|
157
|
+
'spec/fixtures/gtr2/full.ini'
|
158
|
+
)
|
159
|
+
|
160
|
+
[ "Dirk Koch", "Edyta Piotrowski", "Quarantino Angelo",
|
161
|
+
"Favian Fl\303\263rez Romo", "Florka Szigeti", "Elizabeth Cole",
|
162
|
+
"Amadej Gorski", "Edna Lenardi\304\215", "Aaliyah Vaughan",
|
163
|
+
"Zurie Martel", "Harvey Edwards", "Fruzsina Szegedi",
|
164
|
+
"Brooke Evans", "Mimi Kanazawa", "Henk Thygesen", "Mari Kaitala",
|
165
|
+
"Ralf Holtzmann", "Casandra Lindgren","Paul Godden",
|
166
|
+
"Leanne Yamamoto", "Micheal L Cohen", "Lazaro Atkins",
|
167
|
+
"Vickie Avila", "Max Holmberg"
|
168
|
+
].each_with_index do |driver, i|
|
169
|
+
event.competitors[i].name.should == driver
|
170
|
+
event.competitors[i].position.should == i + 1
|
171
|
+
end
|
172
|
+
|
173
|
+
[ ["Dirk Koch", 60, "0:50:49.079", 953.381042],
|
174
|
+
["Edyta Piotrowski", 60, "0:51:01.283", 1001.334045],
|
175
|
+
["Quarantino Angelo", 60, "0:51:13.913", 923.919434],
|
176
|
+
["Favian Fl\303\263rez Romo", 60, "0:51:29.832", 888.234070],
|
177
|
+
["Florka Szigeti", 59, "0:51:05.657", 914.989380],
|
178
|
+
["Elizabeth Cole", 59, "0:52:27.937", 1435.967285],
|
179
|
+
["Amadej Gorski", 58, "0:50:51.446", 919.585510],
|
180
|
+
["Edna Lenardi\304\215", 58, "0:50:54.579", 878.564331],
|
181
|
+
["Aaliyah Vaughan", 58, "0:51:27.133", 869.708801],
|
182
|
+
["Zurie Martel", 58, "0:51:39.759", 890.637634],
|
183
|
+
["Harvey Edwards", 58, "0:52:45.872", 203.332077],
|
184
|
+
["Fruzsina Szegedi", 57, "0:50:52.005", 934.139587],
|
185
|
+
["Brooke Evans", 57, "0:51:04.240", 928.759644],
|
186
|
+
["Mimi Kanazawa", 55, "0:51:20.462", 944.112854],
|
187
|
+
["Henk Thygesen", 52, "DNF", 1226.803223],
|
188
|
+
["Mari Kaitala", 49, "DNF", 480.238708],
|
189
|
+
["Ralf Holtzmann", 42, "DNF", 1118.922363],
|
190
|
+
["Casandra Lindgren", 42, "DNF", 1227.348511],
|
191
|
+
["Paul Godden", 38, "DNF", 520.843872],
|
192
|
+
["Leanne Yamamoto", 37, "DNF", 1369.497681],
|
193
|
+
["Micheal L Cohen", 14, "DNF", 848.236938],
|
194
|
+
["Lazaro Atkins", 13, "DNF", 199.718567],
|
195
|
+
["Vickie Avila", 12, "DNF", 962.172485],
|
196
|
+
["Max Holmberg", 3, "DQ", 907.125916]]
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|