public void TestDecodeNicoKara() { using (var resStream = TestResources.OpenNicoKaraResource("default")) using (var stream = new LineBufferedReader(resStream)) { var decoder = Decoder.GetDecoder <KaraokeSkin>(stream); var skin = decoder.Decode(stream); // Testing layout var firstLayout = skin.Layouts.FirstOrDefault(); Assert.IsNotNull(firstLayout); Assert.AreEqual(firstLayout.Name, "下-1"); Assert.AreEqual(firstLayout.Alignment, Anchor.BottomRight); Assert.AreEqual(firstLayout.HorizontalMargin, 30); Assert.AreEqual(firstLayout.VerticalMargin, 45); Assert.AreEqual(firstLayout.Continuous, false); Assert.AreEqual(firstLayout.SmartHorizon, KaraokeTextSmartHorizon.Multi); Assert.AreEqual(firstLayout.LyricsInterval, 4); Assert.AreEqual(firstLayout.RubyInterval, 2); Assert.AreEqual(firstLayout.RubyAlignment, LyricTextAlignment.Auto); Assert.AreEqual(firstLayout.RubyMargin, 4); // Testing style var firstFont = skin.Fonts.FirstOrDefault(); Assert.IsNotNull(firstFont); Assert.AreEqual(firstFont.Name, "標準配色"); // Test back text brush var backTextBrushInfo = firstFont.BackTextBrushInfo.TextBrush; Assert.AreEqual(backTextBrushInfo.BrushGradients.Count, 3); Assert.AreEqual(backTextBrushInfo.SolidColor, new Color4(255, 255, 255, 255)); Assert.AreEqual(backTextBrushInfo.Type, BrushType.Solid); // Test font info var lyricTextFontInfo = firstFont.LyricTextFontInfo.LyricTextFontInfo; Assert.AreEqual(lyricTextFontInfo.FontName, "游明朝 Demibold"); Assert.AreEqual(lyricTextFontInfo.Bold, true); Assert.AreEqual(lyricTextFontInfo.CharSize, 40); Assert.AreEqual(lyricTextFontInfo.EdgeSize, 10); } }