Ejemplo n.º 1
0
        public void Encode_Barcode_ShouldEncodeRm4ScCorrectly()
        {
            // Arrange
            var content          = "123ABC789XYZ"; // checksum character == 'K'
            var expectedDataBits = ImageStringToBools(@"
                +.....+.+.....+.+.....+.+...+...+...+...+...+.+.....+...+...+...+...+...+.+.+.....+.+.....+.+.....+.....+.+
                +.....+.+.....+.+.....+.+...+...+...+...+...+.+.....+...+...+...+...+...+.+.+.....+.+.....+.+.....+.....+.+
                +.....+.+.....+.+.....+.+...+...+...+...+...+.+.....+...+...+...+...+...+.+.+.....+.+.....+.+.....+.....+.+
                +.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+
                +.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+
                ....+...+...+.+...+.....+.+...+...+.+.........+.+...+...+...+.+...+.....+.+.....+.+...+...+.+.......+.+...+
                ....+...+...+.+...+.....+.+...+...+.+.........+.+...+...+...+.+...+.....+.+.....+.+...+...+.+.......+.+...+
                ....+...+...+.+...+.....+.+...+...+.+.........+.+...+...+...+.+...+.....+.+.....+.+...+...+.+.......+.+...+
            ");

            // Act
            IBarcode royalMailCode = RoyalMailFourStateCodeEncoder.Encode(content);

            // Assert
            royalMailCode.Should().NotBeNull();
            royalMailCode.Metadata.CodeKind.Should().Be(BarcodeType.RM4SC);
            expectedDataBits.Length.Should().Be(royalMailCode.Bounds.X * royalMailCode.Bounds.Y);
            for (int i = 0; i < expectedDataBits.Length; i++)
            {
                int x = i % royalMailCode.Bounds.X;
                int y = i / royalMailCode.Bounds.X;
                royalMailCode.At(x, y).Should().Be(expectedDataBits[i], $"of expected bit on index {i}");
            }
        }
Ejemplo n.º 2
0
        public static IBarcode Encode(string content)
        {
            var royalMailCodeWithoutHeaders = RoyalMailFourStateCodeEncoder.Encode(content, false) as RoyalMailFourStateCode;

            return(new KixCode(royalMailCodeWithoutHeaders));
        }