예제 #1
0
        public void SplitToBlocksAndInterleave_ShouldReturnCorrectResult(byte dataCodewordsPerBlockInGroup1, byte dataCodewordsPerBlockInGroup2, byte[] expectedInterleaveResult)
        {
            // Arrange
            var versionInfo = new VersionInfo(5, ErrorCorrectionLevel.Q, 18, 2, dataCodewordsPerBlockInGroup1, 2, dataCodewordsPerBlockInGroup2);
            var data        = new byte[] { 67, 85, 70, 134, 87, 38, 85, 194, 119, 50, 6, 18, 6, 103, 38, 246, 246, 66, 7, 118, 134, 242, 7, 38, 86, 22, 198, 199, 146, 6, 182, 230, 247, 119, 50, 7, 118, 134, 87, 38, 82, 6, 134, 151, 50, 7, 70, 247, 118, 86, 194, 6, 151, 50, 16, 236, 17, 236, 17, 236, 17, 236 };

            // Act
            byte[] interleaveResult = BlockList.SplitToBlocks(new Queue <byte>(data), versionInfo).Interleave(versionInfo);

            // Assert
            interleaveResult.Should().BeEquivalentTo(expectedInterleaveResult);
        }