Example #1
0
        public void Diff_RandomDataAndKnownDifferencesCount_DifferencesCountEqualsToKnown()
        {
            // arrange
            var testCasesCount         = 3;
            var testCasesInputs        = new GenerateBinaryDataResult[testCasesCount];
            var testCasesResults       = new BinaryDataDiffAnalyzerResult[testCasesCount];
            var binaryDataDiffAnalyzer = new BinaryDataDiffAnalyzer();

            // action
            for (var i = 0; i < testCasesCount; i++)
            {
                var dataSize     = _random.Next(10, 10000);
                var leftSideData = new byte[dataSize];
                testCasesInputs[i] = GenerateBinaryData(dataSize);
                _logger.Debug(String.Format("Tast case #{0}", i));
                _logger.Debug(String.Format("Generated {0}", ByteArrayAsString(testCasesInputs[i].Data)));
                _logger.Debug(String.Format("NonZeroGroupsCount: {0}", testCasesInputs[i].NonZeroGroupsCount));
                testCasesResults[i] = binaryDataDiffAnalyzer.Diff(leftSideData, testCasesInputs[i].Data);
            }

            // assert
            for (var i = 0; i < testCasesResults.Length; i++)
            {
                Assert.AreEqual(testCasesInputs[i].NonZeroGroupsCount, testCasesResults[i].Diffs.Length);
            }
        }
Example #2
0
        public void Diff_SameSizeAndDifferentContent_ContentDoNotMatch()
        {
            //arrange
            var leftSideData           = new byte[] { 0, 0, 0, 0 };
            var rightSideData          = new byte[] { 1, 0, 1, 1 };
            var binaryDataDiffAnalyzer = new BinaryDataDiffAnalyzer();

            //action
            var result = binaryDataDiffAnalyzer.Diff(leftSideData, rightSideData);

            //assert
            Assert.AreEqual(DiffResultType.ContentDoNotMatch, result.DiffResultType);
        }
Example #3
0
        public void Diff_SameSizeAndTotallyDifferentContent_FoundOneDifference()
        {
            // arrange
            var leftSideData           = new byte[] { 0, 0, 0, 0 };
            var rightSideData          = new byte[] { 1, 1, 1, 1 };
            var binaryDataDiffAnalyzer = new BinaryDataDiffAnalyzer();

            // action
            var result = binaryDataDiffAnalyzer.Diff(leftSideData, rightSideData);

            // assert
            Assert.AreEqual(1, result.Diffs.Length);
        }
Example #4
0
        public void Diff_SameSizeAndContent_Equals()
        {
            //arrange
            var leftSideData           = new byte[] { 0, 0, 0, 0 };
            var rightSideData          = new byte[] { 0, 0, 0, 0 };
            var binaryDataDiffAnalyzer = new BinaryDataDiffAnalyzer();

            //action
            var result = binaryDataDiffAnalyzer.Diff(leftSideData, rightSideData);

            //assert
            Assert.AreEqual(DiffResultType.Equals, result.DiffResultType);
        }
Example #5
0
        public void Diff_SameDataAndTwoDifferences_ExpectedDiffOffsetAndLength()
        {
            // arrange
            var leftSideData           = new byte[] { 0, 0, 0, 0 };
            var rightSideData          = new byte[] { 1, 0, 1, 1 };
            var binaryDataDiffAnalyzer = new BinaryDataDiffAnalyzer();

            // action
            var result = binaryDataDiffAnalyzer.Diff(leftSideData, rightSideData);

            // assert
            Assert.AreEqual(0, result.Diffs[0].Offset);
            Assert.AreEqual(1, result.Diffs[0].Length);
            Assert.AreEqual(2, result.Diffs[1].Offset);
            Assert.AreEqual(2, result.Diffs[1].Length);
        }