Ejemplo n.º 1
0
        public void SubFontGenerator_Generate_FailsOnLessThanThreeLinesInInputText()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            ISubFontGenerator generator = new SubFontGenerator(messenger, tools);

            var desc = new CandidateSubFontDesc
            {
                Textures = new System.Collections.Generic.List <ITexture>()
                {
                    null
                },
                TexturePaths = new System.Collections.Generic.List <string>()
                {
                    "random"
                },
                DotFntLines = new System.Collections.Generic.List <string>
                {
                    "x",
                    "x"
                }
            };

            Assert.Null(generator.Generate(desc));
        }
Ejemplo n.º 2
0
        public void SubFontTools_ExtractCharacterFromLine_CorrectlyExtractsCharacters(string line,
                                                                                      int pagewidth,
                                                                                      int pageheight,
                                                                                      int id,
                                                                                      float x0,
                                                                                      float x1,
                                                                                      float y0,
                                                                                      float y1,
                                                                                      float xoffset,
                                                                                      float yoffset,
                                                                                      float width,
                                                                                      float height,
                                                                                      float xadvance,
                                                                                      int page)
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            var result = tools.ExtractCharacterFromLine(line, pagewidth, pageheight);

            var chr = result.Item2;

            Assert.Equal(id, result.Item1);
            Assert.Equal(x0, chr.X0);
            Assert.Equal(x1, chr.X1);
            Assert.Equal(y0, chr.Y0);
            Assert.Equal(y1, chr.Y1);
            Assert.Equal(xoffset, chr.XOffset);
            Assert.Equal(yoffset, chr.YOffset);
            Assert.Equal(width, chr.Width);
            Assert.Equal(height, chr.Height);
            Assert.Equal(xadvance, chr.XAdvance);
            Assert.Equal(page, chr.Page);
        }
Ejemplo n.º 3
0
        public void SubFontTools_TestExtractPngFilePathsFromLineList_ReturnFilenames()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            var lines = new List <string>
            {
                "nothing",
                "dirty text 23123&8734///",
                "page id=0 file=\"minstrel_96_0.png\"",
                "page id=1 file=\"minstrel_96_1.png\"",
                "page id=2 file=\"minstrel_96_2.png\"",
                "page id=3 file=\"minstrel_96_3.png\"",
                "page id=4 file=\"minstrel_96_4.png\"",
                "page id=5 file=\"minstrel_96_5.png\"",
                "page id=6 file=\"minstrel_96_6.png\"",
                "page id=7 file=\"minstrel_96_7.png\"",
                "extra poop",
                "how can this be broken?? png ?? ."
            };

            var result = tools.ExtractPngFilePathsFromDotFntLines(lines);

            Assert.Equal(8, result.Count);
            Assert.Equal("minstrel_96_0.png", result[0]);
            Assert.Equal("minstrel_96_1.png", result[1]);
            Assert.Equal("minstrel_96_2.png", result[2]);
            Assert.Equal("minstrel_96_3.png", result[3]);
            Assert.Equal("minstrel_96_4.png", result[4]);
            Assert.Equal("minstrel_96_5.png", result[5]);
            Assert.Equal("minstrel_96_6.png", result[6]);
            Assert.Equal("minstrel_96_7.png", result[7]);
        }
Ejemplo n.º 4
0
        public void SubFontTools_ExtractKerningFromLine_FailsOnMissingData(string line)
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            Assert.Null(tools.ExtractKerningFromLine(line).Item1);
        }
Ejemplo n.º 5
0
        public void SubFontTools_LineStartsWith_CorrectlyReturnFalse()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            Assert.False(tools.LineStartsWith("start", "end of the fun cirus"));
        }
Ejemplo n.º 6
0
        public void SubFontTools_TestExtractPngFilePathsFromLineListNullInput_ReturnsZeroSizedArray()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            var result = tools.ExtractPngFilePathsFromDotFntLines(null);

            Assert.Empty(result);
        }
Ejemplo n.º 7
0
        public void SubFontTools_LineStartsWith_ReturnsFalseOnNullInput()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            Assert.False(tools.LineStartsWith("what", null));
            Assert.False(tools.LineStartsWith(null, "where"));
            Assert.False(tools.LineStartsWith(null, null));
        }
Ejemplo n.º 8
0
        public void SubFontTools_ExtractCharacterFromLine_FailsOnMissingData(string line,
                                                                             int pagewidth,
                                                                             int pageheight)

        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            Assert.Null(tools.ExtractCharacterFromLine(line, pagewidth, pageheight).Item2);
        }
Ejemplo n.º 9
0
        public void SubFontTools_ExtractNamedFloatFromLine_ReturnCorrectValue()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            var name = "happiness";
            var line = "what s      @ ?? .. 98TH happ i n ess ..kk /* happiness=205.3 _ whatever ";

            var result = tools.ExtractNamedFloatFromLine(name, line);

            Assert.Equal(205.3f, (float)result);
        }
Ejemplo n.º 10
0
        public void SubFontTools_ExtractKerningFromLine_CorrectlyExtracts(string line,
                                                                          char first,
                                                                          char second,
                                                                          short amount)
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            var result = tools.ExtractKerningFromLine(line);

            Assert.Equal(first, result.Item1);
            Assert.Equal(second, result.Item2);
            Assert.Equal(amount, result.Item3);
        }
Ejemplo n.º 11
0
        public void SubFontGenerator_Generate_SuccessfullyParsesDataAndReturnsValidSubFont()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            ISubFontGenerator generator = new SubFontGenerator(messenger, tools);

            var desc = new CandidateSubFontDesc
            {
                Textures = new System.Collections.Generic.List <ITexture>()
                {
                    null
                },
                TexturePaths = new System.Collections.Generic.List <string>()
                {
                    "random"
                },
                DotFntLines = new System.Collections.Generic.List <string>
                {
                    "info face=\"Minstrel Poster NF\" size=96 bold=0 italic=0 charset=\"\" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0",
                    "common lineHeight=95 base=77 scaleW=256 scaleH=256 pages=8 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0",
                    "page id=0 file=\"minstrel_96_0.png\"",
                    "page id=1 file=\"minstrel_96_1.png\"",
                    "page id=2 file=\"minstrel_96_2.png\"",
                    "chars count=5",
                    "char id=32   x=128   y=75    width=3     height=1     xoffset=-1    yoffset=94    xadvance=14    page=0  chnl=15",
                    "char id=33   x=221   y=0     width=23    height=56    xoffset=1     yoffset=22    xadvance=24    page=3  chnl=15",
                    "char id=34   x=104   y=238   width=24    height=15    xoffset=1     yoffset=22    xadvance=25    page=3  chnl=15",
                    "char id=35   x=57    y=209   width=42    height=46    xoffset=1     yoffset=23    xadvance=43    page=1  chnl=15",
                    "char id=36   x=46    y=110   width=44    height=54    xoffset=1     yoffset=23    xadvance=45    page=5  chnl=15",
                    "kernings count=4",
                    "kerning first=34  second=65  amount=-11",
                    "kerning first=34  second=79  amount=-3",
                    "kerning first=34  second=192 amount=-11",
                    "kerning first=34  second=193 amount=-11"
                }
            };

            var result = generator.Generate(desc);

            Assert.Equal(5, result.Characters.Count);
            Assert.Equal(96, result.Size);
            Assert.Equal(95, result.LineHeight);
            Assert.True(result.HasKernings);
            Assert.Equal(94, result.Characters[(char)32].YOffset);
            Assert.Equal(-11, result.Kernings[(char)34][(char)192]);
        }
Ejemplo n.º 12
0
        public void SubFontTools_ExtractNamedIntFromLine_ReturnNullFromNullInput()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            var result = tools.ExtractNamedIntFromLine(null, "test");

            Assert.Null(result);

            result = tools.ExtractNamedIntFromLine("test", null);
            Assert.Null(result);

            result = tools.ExtractNamedIntFromLine(null, null);
            Assert.Null(result);
        }
Ejemplo n.º 13
0
        public void SubFontTools_TestExtractPngFilePathsFromLineListNoMatches_ReturnZeroSizedArray()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            var lines = new List <string>
            {
                "nothing",
                "dirty text 23123&8734///",
                "extra poop",
                "how can this be broken?? png ?? ."
            };

            var result = tools.ExtractPngFilePathsFromDotFntLines(lines);

            Assert.Empty(result);
        }
Ejemplo n.º 14
0
        public void SubFontGenerator_Generate_FailsAsMissingLineHeightARandomlyChosenParam()
        {
            var messenger = Substitute.For <IFrameworkMessenger>();

            ISubFontTools tools = new SubFontTools(messenger);

            ISubFontGenerator generator = new SubFontGenerator(messenger, tools);

            var desc = new CandidateSubFontDesc
            {
                Textures = new System.Collections.Generic.List <ITexture>()
                {
                    null
                },
                TexturePaths = new System.Collections.Generic.List <string>()
                {
                    "random"
                },
                DotFntLines = new System.Collections.Generic.List <string>
                {
                    "info face=\"Minstrel Poster NF\" size=96 bold=0 italic=0 charset=\"\" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0",
                    "common base=77 scaleW=256 scaleH=256 pages=8 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0", //lineheight=95 removed
                    "page id=0 file=\"minstrel_96_0.png\"",
                    "page id=1 file=\"minstrel_96_1.png\"",
                    "page id=2 file=\"minstrel_96_2.png\"",
                    "chars count=5",
                    "char id=32   x=128   y=75    width=3     height=1     xoffset=-1    yoffset=94    xadvance=14    page=0  chnl=15",
                    "char id=33   x=221   y=0     width=23    height=56    xoffset=1     yoffset=22    xadvance=24    page=3  chnl=15",
                    "char id=34   x=104   y=238   width=24    height=15    xoffset=1     yoffset=22    xadvance=25    page=3  chnl=15",
                    "char id=35   x=57    y=209   width=42    height=46    xoffset=1     yoffset=23    xadvance=43    page=1  chnl=15",
                    "char id=36   x=46    y=110   width=44    height=54    xoffset=1     yoffset=23    xadvance=45    page=5  chnl=15",
                    "kernings count=4",
                    "kerning first=34  second=65  amount=-11",
                    "kerning first=34  second=79  amount=-3",
                    "kerning first=34  second=192 amount=-11",
                    "kerning first=34  second=193 amount=-11"
                }
            };

            Assert.Null(generator.Generate(desc));
        }