public FileSizeStatistics EvaluateFileSizeStatistics(uint inputFileSize, uint outputFileSize, uint headerSize)
        {
            FileSizeStatistics statistics = new FileSizeStatistics();

            statistics.InputFileSize            = inputFileSize;
            statistics.OutputFileSize           = outputFileSize;
            statistics.OutputFileSizeWithHeader = outputFileSize + headerSize;

            double compressionRatio           = (double)outputFileSize / (double)inputFileSize;
            double compressionRatioWithHeader = (double)statistics.OutputFileSizeWithHeader / (double)inputFileSize;

            statistics.CompressionRatio           = Math.Round(compressionRatio, DECIMAL_DIGITS);
            statistics.CompressionRatioWithHeader = Math.Round(compressionRatioWithHeader, DECIMAL_DIGITS);

            return(statistics);
        }
        public void FileSize_EvaluateStatistics()
        {
            var  helper         = new HuffmanStatisticsHelper();
            uint inputFileSize  = 100;
            uint outputFileSize = 50;
            uint headerSize     = 10;
            FileSizeStatistics expectedStatistics = new FileSizeStatistics();

            expectedStatistics.InputFileSize              = 100;
            expectedStatistics.OutputFileSize             = 50;
            expectedStatistics.OutputFileSizeWithHeader   = 60;
            expectedStatistics.CompressionRatio           = 0.5;
            expectedStatistics.CompressionRatioWithHeader = 0.6;

            FileSizeStatistics statistics = helper.EvaluateFileSizeStatistics(inputFileSize, outputFileSize, headerSize);

            Assert.AreEqual(expectedStatistics.InputFileSize, statistics.InputFileSize);
            Assert.AreEqual(expectedStatistics.OutputFileSize, statistics.OutputFileSize);
            Assert.AreEqual(expectedStatistics.OutputFileSizeWithHeader, statistics.OutputFileSizeWithHeader);
            Assert.AreEqual(expectedStatistics.CompressionRatio, statistics.CompressionRatio);
            Assert.AreEqual(expectedStatistics.CompressionRatioWithHeader, statistics.CompressionRatioWithHeader);
        }