public void BitRate_EvaluateStatistics() { var helper = new HuffmanStatisticsHelper(); uint inputFileSize = 10; uint outputFileSize = 5; uint headerSize = 5; BitRateStatistics expectedStatistics = new BitRateStatistics(); expectedStatistics.InputFileBitRate = 8; expectedStatistics.OutputFileBitRate = 4; expectedStatistics.OutputFileBitRateWithHeader = 8; expectedStatistics.BitRateProportion = 0.5; expectedStatistics.BitRateProportionWithHeader = 1; BitRateStatistics statistics = helper.EvaluateBitRateStatistics(symbolsCount, inputFileSize, outputFileSize, headerSize); Assert.AreEqual(expectedStatistics.InputFileBitRate, statistics.InputFileBitRate); Assert.AreEqual(expectedStatistics.OutputFileBitRate, statistics.OutputFileBitRate); Assert.AreEqual(expectedStatistics.OutputFileBitRateWithHeader, statistics.OutputFileBitRateWithHeader); Assert.AreEqual(expectedStatistics.BitRateProportion, statistics.BitRateProportion); Assert.AreEqual(expectedStatistics.BitRateProportionWithHeader, statistics.BitRateProportionWithHeader); }
public BitRateStatistics EvaluateBitRateStatistics(int symbolsCount, uint inputFileSize, uint outputFileSize, uint headerSize) { double inputFileBitRate = Math.Round((double)(inputFileSize * 8) / (double)symbolsCount, DECIMAL_DIGITS); double outputFileBitRate = Math.Round((double)(outputFileSize * 8) / (double)symbolsCount, DECIMAL_DIGITS); double outputFileBitRateWithHeader = Math.Round((double)((outputFileSize + headerSize) * 8) / (double)symbolsCount, DECIMAL_DIGITS); double bitRateProportion = Math.Round(outputFileBitRate / inputFileBitRate, DECIMAL_DIGITS); double bitRateProportionWithHeader = Math.Round(outputFileBitRateWithHeader / inputFileBitRate, DECIMAL_DIGITS); BitRateStatistics statistics = new BitRateStatistics(); statistics.InputFileBitRate = inputFileBitRate; statistics.OutputFileBitRate = outputFileBitRate; statistics.OutputFileBitRateWithHeader = outputFileBitRateWithHeader; statistics.BitRateProportion = bitRateProportion; statistics.BitRateProportionWithHeader = bitRateProportionWithHeader; return(statistics); }