コード例 #1
0
        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]);
                }
        }
コード例 #2
0
        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");
                }
        }
コード例 #3
0
 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);
         }
 }
コード例 #4
0
        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);
                }
        }
コード例 #5
0
        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]);
                }
        }
コード例 #6
0
        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);
                }
        }
コード例 #7
0
 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));
 }