public void Read_MontrealTrack_HasExpectedBehaviorData() { var trackData = TrackFactsHelper.GetTrackMontreal(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackData.Path))) { var settings = TrackSettingsReader.Read(reader, trackData.KnownComputerCarBehaviorStart); settings.LapCount.Should().Be(69); } }
public void Montreal_ObjectShapes() { var trackData = TrackFactsHelper.GetTrackMontreal(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackData.Path))) { var objects = ObjectShapesReader.Read(reader, trackData.KnownOffsets.ObjectData); objects.Count.Should().Be(31); objects.First().AllData.Length.Should().Be(596); objects.Last().AllData.Length.Should().Be(308); } }
public void Read_MontrealTrack_HasExpectedData() { var trackData = TrackFactsHelper.GetTrackMontreal(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackData.Path))) { var result = ComputerCarDataReader.Read(reader, trackData.KnownOffsets.ComputerCarSetup); var data = result.ComputerCarData; data.GripFactor.Should().Be(16384); data.Acceleration.Should().Be(16384); data.AirResistance.Should().Be(16384); data.FuelLoad.Should().Be(5203); } }
public void MontrealOffsetsReader() { var trackData = TrackFactsHelper.GetTrackMontreal(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackData.Path))) { var offsets = OffsetReader.Read(reader); offsets.UnknownLong1.Should().Be(trackData.KnownOffsets.UnknownLong1); offsets.UnknownLong2.Should().Be(trackData.KnownOffsets.UnknownLong2); offsets.ChecksumPosition.Should().Be(trackData.KnownOffsets.ChecksumPosition); offsets.ObjectData.Should().Be(trackData.KnownOffsets.ObjectData); offsets.TrackData.Should().Be(trackData.KnownOffsets.TrackData); offsets.PitLaneData.Should().Be(trackData.KnownOffsets.PitLaneData); } }
public ObjectSettingsReaderFacts() { var trackDataMontreal = TrackFactsHelper.GetTrackMontreal(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackDataMontreal.Path))) { _montrealObjectSettings = TrackObjectSettingsReader.Read(reader, trackDataMontreal.KnownOffsets.ObjectData, trackDataMontreal.KnownOffsets.TrackData); } var trackDataSilverstone = TrackFactsHelper.GetTrackSilverstone(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackDataSilverstone.Path))) { _silverstoneObjectSettings = TrackObjectSettingsReader.Read(reader, trackDataSilverstone.KnownOffsets.ObjectData, trackDataSilverstone.KnownOffsets.TrackData); } }
public void MontrealBestLine() { var trackData = TrackFactsHelper.GetTrackMontreal(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackData.Path))) { var bestLines = ComputerCarLineReader.Read(reader, trackData.KnownBestLineSectionDataStart); bestLines.Header.LineStartX.Should().Be(4); bestLines.Header.LineStartXHigh.Should().Be(208); bestLines.Header.LineStartY.Should().Be(0); //bestLines.Header.LineStartYHigh.Should().Be(0); bestLines.Header.Unknown1.Should().Be(65354); bestLines.Header.Unknown2.Should().Be(0); bestLines.Header.Unknown3.Should().Be(0); bestLines.Header.Unknown4.Should().Be(0); var firstSegment = bestLines.Segments[0]; firstSegment.Length.Should().Be(26); firstSegment.Command.Should().Be(0x50); firstSegment.SignScale.Should().Be(1); firstSegment.Radius.Should().Be(65092); var segment2 = bestLines.Segments[1]; segment2.Length.Should().Be(37); segment2.Radius.Should().Be(0); var segment3 = bestLines.Segments[2]; segment3.Correction.Should().Be(185); var segment6 = bestLines.Segments[5]; segment6.Length.Should().Be(17); segment6.Command.Should().Be(0x70); segment6.Radius.Should().Be(8280); segment6.Sign0x70.Should().Be(0); segment6.Radius0x70.Should().Be(9650); var lastSegment = bestLines.Segments.Last(); lastSegment.Length.Should().Be(48); lastSegment.Command.Should().Be(0x50); lastSegment.Radius.Should().Be(48032); } }
public void Read_MontrealTrack_HasExpectedSetup() { var trackData = TrackFactsHelper.GetTrackMontreal(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackData.Path))) { var result = ComputerCarDataReader.Read(reader, trackData.KnownOffsets.ComputerCarSetup); var setup = result.Setup; setup.FrontWing.Should().Be(11); setup.RearWing.Should().Be(10); setup.GearRatio1.Should().Be(28); setup.GearRatio2.Should().Be(35); setup.GearRatio3.Should().Be(42); setup.GearRatio4.Should().Be(49); setup.GearRatio5.Should().Be(55); setup.GearRatio6.Should().Be(61); setup.TyreCompound.Should().Be(SetupTyreCompound.C); setup.BrakeBalance.Should().Be(0); } }
public TrackSectionReaderFacts() { var trackDataMontreal = TrackFactsHelper.GetTrackMontreal(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackDataMontreal.Path))) { _montrealTrackSections = TrackSectionReader.Read(reader, trackDataMontreal.KnownTrackSectionDataStart, new TrackSectionCommandOptions { Command0xC5Length = 7 }); } var trackDataSilverstone = TrackFactsHelper.GetTrackSilverstone(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackDataSilverstone.Path))) { _silverstoneTrackSections = TrackSectionReader.Read(reader, trackDataSilverstone.KnownTrackSectionDataStart, new TrackSectionCommandOptions { Command0xC5Length = 8 }); } }
public void MontrealHeader() { var trackData = TrackFactsHelper.GetTrackMontreal(); using (var reader = new BinaryReader(MemoryStreamProvider.Open(trackData.Path))) { var header = TrackSectionHeaderReader.Read(reader, trackData.KnownOffsets.TrackData); header.FirstSectionAngle.Should().Be(65354); header.FirstSectionHeight.Should().Be(0); header.TrackCenterX.Should().Be(13000); header.TrackCenterZ.Should().Be(1328); header.TrackCenterY.Should().Be(-4299); header.StartWidth.Should().Be(1203); header.PoleSide.Should().Be(TrackSide.Left); header.PitsSide.Should().Be(TrackSide.Left); header.CommandLength0xC5.Should().Be(7); header.LeftVergeStartWidth.Should().Be(8); header.RightVergeStartWidth.Should().Be(20); } }