public void TestDecodeEncodedBeatmap(string fileName) { using (var stream = TestResources.OpenLrcResource(fileName)) using (var sr = new StreamReader(stream)) { var text = sr.ReadToEnd(); // Parser song var parser = new LrcParser(); var song = parser.Decode(text); // Encode to lyric var newLyricText = parser.Encode(song); // Encode and decode result should be same IsLyricEqual(newLyricText, text); } }
private static Beatmap decode(string filename, out Beatmap encoded) { using (var stream = TestResources.OpenLrcResource(filename)) using (var sr = new LineBufferedReader(stream)) { // Read file and decode to file var legacyDecoded = new LrcDecoder().Decode(sr); using (var ms = new MemoryStream()) using (var sw = new StreamWriter(ms)) using (var sr2 = new LineBufferedReader(ms)) { // Then encode file to stream var encodeResult = new LrcEncoder().Encode(legacyDecoded); sw.WriteLine(encodeResult); sw.Flush(); ms.Position = 0; encoded = new LrcDecoder().Decode(sr2); return(legacyDecoded); } } }