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); } }
public void TryMapFalseForNumberHigherThanRange() { var range = new CidRange(0, 69, 0); var result = range.TryMap(250, out var _); Assert.False(result); }
public void ContainsTrueForNumberInRange() { var range = new CidRange(0, 69, 0); var result = range.Contains(52); Assert.True(result); }
public void ContainsFalseForHigherNumber() { var range = new CidRange(0, 69, 0); var result = range.Contains(100); Assert.False(result); }
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); }