private void ClickDecode(object sender, EventArgs e)
        {
            var fileInfoEncodedFile = new FileInfo(textBoxFilePathEncodedFile.Text);

            if (!fileInfoEncodedFile.Exists)
            {
                throw new InvalidOperationException($"Huffman decoding error: file '{fileInfoEncodedFile.FullName}' does not exist");
            }

            var encodedFileExtension       = GetExtensionOfEncodedFile(fileInfoEncodedFile);
            var decodedFileDestinationPath = $"{fileInfoEncodedFile.FullName}.{DateTime.Now:dd-MM-yyyy-hh-mm}.{encodedFileExtension}";

            using (var fileReader = new FileReader(textBoxFilePathEncodedFile.Text, new Buffer()))
            {
                using (var fileWriter = new FileWriter(decodedFileDestinationPath, new Buffer()))
                {
                    huffmanDecoder.DecodeFile(fileReader, fileWriter);
                }
            }

            if (checkBoxShowCodesFromDecoding.Checked)
            {
                DisplayEncodedBytes(huffmanDecoder.EncodedBytesFromPreviousRun);
            }
        }
        public void ImageIsEncodedThenDecodedCorrectly()
        {
            using (var fileReader = new FileReader(filePathSource, new Buffer()))
            {
                using (var fileWriter = new FileWriter(filePathEncodedFile, new Buffer()))
                {
                    huffmanEncoder.EncodeFile(fileReader, fileWriter);
                    fileWriter.Buffer.Flush();
                }
            }

            using (var fileReader = new FileReader(filePathEncodedFile, new Buffer()))
            {
                using (var fileWriter = new FileWriter(filePathDecodedFile, new Buffer()))
                {
                    huffmanDecoder.DecodeFile(fileReader, fileWriter);
                }
            }

            Assert.IsTrue(TestMethods.FilesHaveTheSameContent(filePathSource, filePathDecodedFile));
        }
Beispiel #3
0
 public void DecodeFileThrowsArgumentNullExceptionForNullFileReader()
 {
     huffmanDecoder.DecodeFile(null, fileWriterMock.Object);
 }