Esempio n. 1
0
        public void Parse(NumericToken numeric, ITokenScanner scanner, CharacterMapBuilder builder, bool isLenientParsing)
        {
            for (var i = 0; i < numeric.Int; i++)
            {
                if (!scanner.TryReadToken(out HexToken startHexToken))
                {
                    throw new InvalidFontFormatException("Could not find the starting hex token for the CIDRange in this font.");
                }

                if (!scanner.TryReadToken(out HexToken endHexToken))
                {
                    throw new InvalidFontFormatException("Could not find the end hex token for the CIDRange in this font.");
                }

                if (!scanner.TryReadToken(out NumericToken mappedCode))
                {
                    throw new InvalidFontFormatException("Could not find the starting CID numeric token for the CIDRange in this font.");
                }

                var start = HexToken.ConvertHexBytesToInt(startHexToken);
                var end   = HexToken.ConvertHexBytesToInt(endHexToken);

                var range = new CidRange(start, end, mappedCode.Int);

                builder.AddCidRange(range);
            }
        }
Esempio n. 2
0
        public void TryMapFalseForNumberHigherThanRange()
        {
            var range = new CidRange(0, 69, 0);

            var result = range.TryMap(250, out var _);

            Assert.False(result);
        }
Esempio n. 3
0
        public void ContainsTrueForNumberInRange()
        {
            var range = new CidRange(0, 69, 0);

            var result = range.Contains(52);

            Assert.True(result);
        }
Esempio n. 4
0
        public void ContainsFalseForHigherNumber()
        {
            var range = new CidRange(0, 69, 0);

            var result = range.Contains(100);

            Assert.False(result);
        }
Esempio n. 5
0
        public void TryMapMapsCorrectlyForNumberInRangeWithCidOffset()
        {
            var range = new CidRange(0, 69, 9);

            var result = range.TryMap(52, out var cid);

            Assert.True(result);

            Assert.Equal(61, cid);
        }