antw-dyno 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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