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}"); } }
public static IBarcode Encode(string content) { var royalMailCodeWithoutHeaders = RoyalMailFourStateCodeEncoder.Encode(content, false) as RoyalMailFourStateCode; return(new KixCode(royalMailCodeWithoutHeaders)); }