public void TestDecodeBeatmapLyric() { using (var resStream = TestResources.OpenBeatmapResource("karaoke-file-samples")) using (var stream = new LineBufferedReader(resStream)) { var decoder = Decoder.GetDecoder <Beatmap>(stream); Assert.AreEqual(typeof(KaraokeLegacyBeatmapDecoder), decoder.GetType()); var working = new TestWorkingBeatmap(decoder.Decode(stream)); Assert.AreEqual(1, working.BeatmapInfo.BeatmapVersion); Assert.AreEqual(1, working.Beatmap.BeatmapInfo.BeatmapVersion); Assert.AreEqual(1, working.GetPlayableBeatmap(new KaraokeRuleset().RulesetInfo, Array.Empty <Mod>()).BeatmapInfo.BeatmapVersion); // Test lyric part decode result var lyrics = working.Beatmap.HitObjects.OfType <Lyric>(); Assert.AreEqual(54, lyrics.Count()); // Test note decode part var notes = working.Beatmap.HitObjects.OfType <Note>().Where(x => x.Display).ToList(); Assert.AreEqual(36, notes.Count); testNote("た", 0, note: notes[0]); testNote("だ", 0, note: notes[1]); testNote("か", 0, note: notes[2]); // 風,か testNote("ぜ", 0, note: notes[3]); // 風,ぜ testNote("に", 1, note: notes[4]); testNote("揺", 2, note: notes[5]); testNote("ら", 3, note: notes[6]); testNote("れ", 4, true, notes[7]); testNote("て", 3, note: notes[8]); } }
public void TestDecodeTranslate() { using (var resStream = TestResources.OpenBeatmapResource("karaoke-translate-samples")) using (var stream = new LineBufferedReader(resStream)) { // Create karaoke beatmap decoder var lrcDecoder = new KaraokeLegacyBeatmapDecoder(); var beatmap = lrcDecoder.Decode(stream); // Get translate var translates = beatmap.GetProperty()?.Translates; // Check is not null Assert.IsTrue(translates != null); // Check translate count Assert.AreEqual(translates.Count, 2); // Check chinese translate Assert.AreEqual(translates["zh-TW"].Count, 2); Assert.AreEqual(translates["zh-TW"][0], "卡拉OK"); Assert.AreEqual(translates["zh-TW"][1], "喜歡"); // Check english translate Assert.AreEqual(translates["en-US"].Count, 2); Assert.AreEqual(translates["en-US"][0], "karaoke"); Assert.AreEqual(translates["en-US"][1], "like it"); } }
public void TestNullBeatmap(string fileName) { using (var resStream = TestResources.OpenBeatmapResource(fileName)) using (var stream = new LineBufferedReader(resStream)) { var decoder = Decoder.GetDecoder <Beatmap>(stream); var beatmap = decoder.Decode(stream); selectBeatmap(beatmap, fileName); } }
private static KaraokeBeatmap decodeBeatmap(string fileName) { using (var resStream = TestResources.OpenBeatmapResource(fileName)) using (var stream = new LineBufferedReader(resStream)) { // Create karaoke beatmap decoder var lrcDecoder = new KaraokeLegacyBeatmapDecoder(); // Create initial beatmap var beatmap = lrcDecoder.Decode(stream); // Convert to karaoke beatmap return(new KaraokeBeatmapConverter(beatmap, new KaraokeRuleset()).Convert() as KaraokeBeatmap); } }
public void TestDecodeNote() { using (var resStream = TestResources.OpenBeatmapResource("karaoke-note-samples")) using (var stream = new LineBufferedReader(resStream)) { // Create karaoke beatmap decoder var lrcDecoder = new KaraokeLegacyBeatmapDecoder(); var beatmap = lrcDecoder.Decode(stream); // Get notes var notes = beatmap.HitObjects.OfType <Note>().ToList(); testNote("か", 1, note: notes[0]); testNote("ら", 2, true, notes[1]); testNote("お", 3, note: notes[2]); testNote("け", 3, true, notes[3]); testNote("け", 4, note: notes[4]); } }
public void TestDecodeStyle() { using (var resStream = TestResources.OpenBeatmapResource("karaoke-style-samples")) using (var stream = new LineBufferedReader(resStream)) { // Create karaoke beatmap decoder var lrcDecoder = new KaraokeLegacyBeatmapDecoder(); var beatmap = lrcDecoder.Decode(stream); // Get lyric var lyric = beatmap.HitObjects.OfType <LyricLine>().FirstOrDefault(); // Check is not null Assert.IsTrue(lyric != null); // Check layout and font index Assert.AreEqual(lyric.LayoutIndex, 2); Assert.AreEqual(lyric.FontIndex, 3); } }
private static Beatmap createTestBeatmap() { using (var stream = TestResources.OpenBeatmapResource("karaoke-file-samples")) using (var reader = new LineBufferedReader(stream)) return(Decoder.GetDecoder <Beatmap>(reader).Decode(reader)); }