private static void ConvertCsvToNotes( IEnumerable <NoteWithCustomTimeAndLength> expectedNotes, TempoMap tempoMap, TimeSpanType timeType, string[] csvLines, NoteNumberFormat noteNumberFormat = NoteNumberFormat.NoteNumber, TimeSpanType noteLengthType = TimeSpanType.Midi, char delimiter = ',') { var filePath = Path.GetTempFileName(); File.WriteAllLines(filePath, csvLines); var settings = new NoteCsvConversionSettings { TimeType = timeType, NoteNumberFormat = noteNumberFormat, NoteLengthType = noteLengthType }; settings.CsvSettings.CsvDelimiter = delimiter; try { var actualNotes = new CsvConverter().ConvertCsvToNotes(filePath, tempoMap, settings).ToList(); _noteMethods.AssertCollectionsAreEqual(expectedNotes.Select(n => n.GetNote(tempoMap)), actualNotes); ConvertNotesToFromCsv(actualNotes, tempoMap, filePath, settings); } finally { File.Delete(filePath); } }
private static void ConvertNotesToCsv( IEnumerable <NoteWithCustomTimeAndLength> expectedNotes, TempoMap tempoMap, TimeSpanType timeType, string[] expectedCsvLines, NoteNumberFormat noteNumberFormat = NoteNumberFormat.NoteNumber, TimeSpanType noteLengthType = TimeSpanType.Midi, char delimiter = ',') { var filePath = Path.GetTempFileName(); var settings = new NoteCsvConversionSettings { TimeType = timeType, NoteNumberFormat = noteNumberFormat, NoteLengthType = noteLengthType }; settings.CsvSettings.CsvDelimiter = delimiter; try { new CsvConverter().ConvertNotesToCsv(expectedNotes.Select(n => n.GetNote(tempoMap)), filePath, tempoMap, true, settings); var actualCsvLines = File.ReadAllLines(filePath); CollectionAssert.AreEqual(expectedCsvLines, actualCsvLines, StringComparer.OrdinalIgnoreCase); } finally { File.Delete(filePath); } }
private static void ConvertNotesToFromCsv(IEnumerable <Note> notes, TempoMap tempoMap, string outputFilePath, NoteCsvConversionSettings settings) { var csvConverter = new CsvConverter(); csvConverter.ConvertNotesToCsv(notes, outputFilePath, tempoMap, true, settings); csvConverter.ConvertCsvToNotes(outputFilePath, tempoMap, settings); }