antw-dyno 0.1.2

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 (38) hide show
  1. data/LICENSE +19 -0
  2. data/README.markdown +68 -0
  3. data/Rakefile +45 -0
  4. data/VERSION.yml +4 -0
  5. data/lib/dyno.rb +22 -0
  6. data/lib/dyno/competitor.rb +55 -0
  7. data/lib/dyno/event.rb +16 -0
  8. data/lib/dyno/parsers/gtr2_parser.rb +13 -0
  9. data/lib/dyno/parsers/race07_parser.rb +130 -0
  10. data/lib/dyno/parsers/rfactor_parser.rb +138 -0
  11. data/spec/competitor_spec.rb +129 -0
  12. data/spec/event_spec.rb +59 -0
  13. data/spec/fixtures/gtr2/full.ini +0 -0
  14. data/spec/fixtures/gtr2/header_no_track.ini +0 -0
  15. data/spec/fixtures/gtr2/header_only.ini +0 -0
  16. data/spec/fixtures/gtr2/no_header_section.ini +0 -0
  17. data/spec/fixtures/gtr2/single_driver.ini +0 -0
  18. data/spec/fixtures/race07/full.ini +131 -0
  19. data/spec/fixtures/race07/header_no_track.ini +11 -0
  20. data/spec/fixtures/race07/header_only.ini +12 -0
  21. data/spec/fixtures/race07/no_header_section.ini +6 -0
  22. data/spec/fixtures/race07/no_steam_id.ini +37 -0
  23. data/spec/fixtures/race07/single_driver.ini +37 -0
  24. data/spec/fixtures/race07/single_driver_dnf.ini +34 -0
  25. data/spec/fixtures/race07/single_driver_dsq.ini +34 -0
  26. data/spec/fixtures/readme.markdown +5 -0
  27. data/spec/fixtures/rfactor/arca.xml +187 -0
  28. data/spec/fixtures/rfactor/event_only.xml +43 -0
  29. data/spec/fixtures/rfactor/full.xml +1023 -0
  30. data/spec/fixtures/rfactor/missing_root.xml +6 -0
  31. data/spec/fixtures/rfactor/single_driver.xml +85 -0
  32. data/spec/fixtures/rfactor/single_driver_dnf.xml +80 -0
  33. data/spec/fixtures/rfactor/single_driver_dsq.xml +79 -0
  34. data/spec/parsers/gtr2_parser_spec.rb +199 -0
  35. data/spec/parsers/race07_parser_spec.rb +155 -0
  36. data/spec/parsers/rfactor_parser_spec.rb +158 -0
  37. data/spec/spec_helper.rb +3 -0
  38. metadata +107 -0
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE rF [
3
+ <!ENTITY rFEnt "rFactor Entity">
4
+ ]>
5
+ <rFactorXML version="1.0">
6
+ </rFactorXML>
@@ -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