public void RailwayPartGenerator_Generate_ExpectEqual() { Railway.RailwayParts.Clear(); var dataRead = TrackReader.Read(new string[] { "[1]" }); var railParts = RailwayPartsORM.Map(dataRead); var expected = new List <IRailwayPart> { new Rail() { Char = '[', CoordinateX = 0, CoordinateY = 0, }, new Station() { Char = '1', CoordinateX = 1, CoordinateY = 0, }, new Rail() { Char = ']', CoordinateX = 2, CoordinateY = 0, }, }; var railString = JsonConvert.SerializeObject(railParts); var expString = JsonConvert.SerializeObject(expected); Assert.Equal(expString, railString); }
public void Station_Generate_ExpectStation() { Railway.RailwayParts.Clear(); var dataRead = TrackReader.Read(new string[] { "-1-" }); var railParts = RailwayPartsORM.Map(dataRead); Assert.IsType <Station>(railParts[1]); }
public void RailwayPartGenerator_Generate_ExpectThree2() { Railway.RailwayParts.Clear(); var dataRead = TrackReader.Read(new string[] { "-1-" }); var railParts = RailwayPartsORM.Map(dataRead); Assert.True(railParts.Count == 3); }
public void SilverstoneDataIntegration() { var trackData = TrackFactsHelper.GetTrackSilverstone(); var trackReader = new TrackReader(); var track = trackReader.Read(trackData.Path); track.TrackSections.Count.Should().Be(126, "contains 125 sections and 1 with only command data"); }
public void ConnectStations_raw_2_Check_last() { Railway.RailwayParts.Clear(); var read = TrackReader.Read(File.ReadAllLines(@"TrainTestTrack.txt")); var parts = RailwayPartsORM.Map(read); Railway.AppendParts(parts); var station = parts[^ 1];
public void Phoenix8990_Contains_22_PitLane_Sections() { var trackData = TrackFactsHelper.GetTrackPhoenix8990(); var trackReader = new TrackReader(); var track = trackReader.Read(trackData.Path); track.PitLaneSections.Count.Should().Be(22); track.PitLaneSections[20].Length.Should().Be(0); }
public void ConnectStations_raw_2_test_to_Railway() { Railway.RailwayParts.Clear(); var read = TrackReader.Read(File.ReadAllLines(@"TrainTestTrack.txt")); var parts = RailwayPartsORM.Map(read); Railway.AppendParts(parts); Assert.True(parts.Count == 5); }
public void AidaDataIntegration() { var trackData = TrackFactsHelper.GetTrackAida(); var trackReader = new TrackReader(); var track = trackReader.Read(trackData.Path); track.TrackSections.Count.Should().Be(70); track.PitLaneSections.Count.Should().Be(24); track.ComputerCarLineSegments.Count.Should().Be(53); }
/// <summary> /// Loads a MIDI file into the Sequence. /// </summary> /// <param name="fileName"> /// The MIDI file's name. /// </param> public void Load(string fileName) { #region Require if (disposed) { throw new ObjectDisposedException("Sequence"); } else if (IsBusy) { throw new InvalidOperationException(); } else if (fileName == null) { throw new ArgumentNullException("fileName"); } #endregion FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); using (stream) { MidiFileProperties newProperties = new MidiFileProperties(); TrackReader reader = new TrackReader(); List <Track> newTracks = new List <Track>(); newProperties.Read(stream); for (int i = 0; i < newProperties.TrackCount; i++) { reader.Read(stream, i); newTracks.Add(reader.Track); if (timeSignatureNumerator == -1) { timeSignatureNumerator = reader.TimeSignatureNumerator; } if (timeSignatureDenominator == -1) { timeSignatureDenominator = reader.TimeSignatureDenominator; } } properties = newProperties; tracks = newTracks; } #region Ensure Debug.Assert(Count == properties.TrackCount); #endregion }
public void ConnectStations_raw_2_CheckStation() { Railway.RailwayParts.Clear(); var read = TrackReader.Read(File.ReadAllLines(@"TrainTestTrack.txt")); var parts = RailwayPartsORM.Map(read); Railway.AppendParts(parts); var station = parts[0]; Assert.IsType <Station>(station); }
public void MonacoDataIntegration() { var trackData = TrackFactsHelper.GetTrackMonaco(); var trackReader = new TrackReader(); var track = trackReader.Read(trackData.Path); track.TrackSections.Count.Should().Be(132); track.PitLaneSections.Count.Should().Be(22); track.ComputerCarLineSegments.Count.Should().Be(68); track.TrackSettings.LapCount.Should().Be(78); }
public void ConnectionRoutesAddedCorrectly() { // Arrange var p1 = new Waypoint("P1", 0.0, 0.0); var p2 = new Waypoint("P2", 5.0, 5.0); var q1 = new Waypoint("Q1", 3.0, 3.0); var q2 = new Waypoint("Q2", 2.0, 3.0); var q3 = new Waypoint("Q3", 1.0, 3.0); var wptList = new WaypointList(); int p1Index = wptList.AddWaypoint(p1); wptList.AddWaypoint(p2); int q1Index = wptList.AddWaypoint(q1); int q2Index = wptList.AddWaypoint(q2); int q3Index = wptList.AddWaypoint(q3); var neighbor = new Neighbor("A1", q1.Distance(q2)); wptList.AddNeighbor(q1Index, q2Index, neighbor); var reader = new TrackReader <PacificTrack>( wptList, new AirportManager()); string[] routeFrom = { "Q1", "A1", "Q2", "UPR", "Q3", "P1" }; // Act var nodes = reader.Read( new PacificTrack( PacotDirection.Westbound, "A", "", "", "", RouteString.From("P1", "P2"), new[] { routeFrom.ToRouteString() }, new[] { RouteString.Empty }, new LatLon(0.0, 0.0), new LatLon(0.0, 0.0))); // Assert var pairs = nodes.ConnectionRoutes.ToList(); Assert.AreEqual(1, pairs.Count); var pair = pairs.First(); Assert.AreEqual(q3Index, pair.IndexFrom); Assert.AreEqual(p1Index, pair.IndexTo); }
private void LoadDoWork(object sender, DoWorkEventArgs e) { string fileName = (string)e.Argument; FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); using (stream) { MidiFileProperties newProperties = new MidiFileProperties(); TrackReader reader = new TrackReader(); List <Track> newTracks = new List <Track>(); newProperties.Read(stream); float percentage; for (int i = 0; i < newProperties.TrackCount && !loadWorker.CancellationPending; i++) { reader.Read(stream, i); newTracks.Add(reader.Track); if (timeSignatureNumerator == -1) { timeSignatureNumerator = reader.TimeSignatureNumerator; } if (timeSignatureDenominator == -1) { timeSignatureDenominator = reader.TimeSignatureDenominator; } percentage = (i + 1f) / newProperties.TrackCount; loadWorker.ReportProgress((int)(100 * percentage)); } if (loadWorker.CancellationPending) { e.Cancel = true; } else { properties = newProperties; tracks = newTracks; } } }
public void MontrealDataIntegration() { var trackData = TrackFactsHelper.GetTrackMontreal(); var trackReader = new TrackReader(); var track = trackReader.Read(trackData.Path); track.TrackSections.Count.Should().Be(79, "contains 78 normal sections and 1 with only command data"); track.PitLaneSections.Count.Should().Be(26); track.ComputerCarLineSegments.Count.Should().Be(48); track.ObjectShapes.Count.Should().Be(31); track.ObjectSettings.Count.Should().Be(153); track.ComputerCarLineHeader.LineStartX.Should().Be(4); track.ComputerCarSetup.FrontWing.Should().Be(11); track.TrackSettings.LapCount.Should().Be(69); }
public void TrackReader_ReadFile_ExpectEqual() { var dataRead = TrackReader.Read(File.ReadAllLines(@"Railway/test-track.txt")); var expected = new List <(char chr, int X, int Y)> { ('[', 0, 0), ('1', 1, 0), ('-', 2, 0), ('<', 3, 0), ('>', 4, 0), (']', 5, 0), ('/', 6, 0), ('\\', 7, 0), ('=', 9, 0), }; Assert.Equal(expected, dataRead); }
public void AddsMainRouteCorrectly() { // Arrange var p1 = new Waypoint("P1", 0.0, 0.0); var p2 = new Waypoint("P2", 5.0, 5.0); var wptList = new WaypointList(); wptList.AddWaypoint(p1); wptList.AddWaypoint(p2); var reader = new TrackReader <PacificTrack>( wptList, new AirportManager()); // Act var nodes = reader.Read( new PacificTrack( PacotDirection.Westbound, "A", "", "", "", RouteString.From("P1", "P2"), new[] { RouteString.Empty }, new[] { RouteString.Empty }, new LatLon(0.0, 0.0), new LatLon(0.0, 0.0))); // Assert var route = nodes.MainRoute; Assert.AreEqual(2, route.Count); var n = route.First.Value; Assert.IsTrue(n.Waypoint.Equals(p1)); Assert.IsTrue(n.Neighbor.Airway == "DCT" && n.Neighbor.Distance == p1.Distance(p2)); Assert.IsTrue(route.LastWaypoint.Equals(p2)); }