public void Close( ) { byte[] theInput = byteOut.ToArray( ); Console.WriteLine("Read " + theInput.Length + " bytes"); MemoryStream byteIn = new MemoryStream(theInput); CharCounter countObj = new CharCounter(byteIn); byteIn.Close( ); HuffmanTree codeTree = new HuffmanTree(countObj); codeTree.WriteEncodingTable(dout); BitOutputStream bout = new BitOutputStream(dout); for (int i = 0; i < theInput.Length; i++) { bout.WriteBits(codeTree.GetCode(theInput[i] & (0xff))); } bout.WriteBits(codeTree.GetCode(BitUtils.EOF)); bout.Close( ); byteOut.Close( ); }
public void ShouldBeAbleToCountNumberOfLettersInAComplexSentence() { var input = "Once is unique, twice is a coincidence, three times is a pattern."; var charToScanFor = 'n'; var expected = 5; var stringUtils = new CharCounter(); int result = CharCounter.CountChar(input, charToScanFor); Assert.AreEqual(expected, result); }
static async Task Main(string[] args) { string webUrlToRead = ConfigurationManager.AppSettings.Get("WebUrlToRead"); string resultFolderPath = ConfigurationManager.AppSettings.Get("ResultFolderPath"); IReader reader = new Reader(); IWriter writer = new Writer(); ICharCounter charCounter = new CharCounter(); var htmlSourceCode = await reader.ReadAsync(webUrlToRead); var result = charCounter.CountCharsInString(htmlSourceCode); await writer.WriteToFileAsync(resultFolderPath, result); }
public void ShouldBeAbleToCountCharInSimpleSentence() { //arrange var input = "TDD is awesome!"; var charToScanFor = 'e'; var expectedResult = 2; //Act var stringUtils = new CharCounter(); int result = CharCounter.CountChar(input, charToScanFor); //Assert Assert.AreEqual(expectedResult, result); }
private Tuple <byte[], string> GetCompressedTextAndCodes(string filePath) { var reader = new TxtReader(); var preprocessor = new HuffmanPreprocessor(); var compressor = new HuffmanCompressor(); var fileContent = reader.ReadFile(filePath, Encoding.UTF8); var charsCount = CharCounter.GetSymbolsCount(fileContent); var sortedChars = charsCount.OrderBy(pair => pair.Value).ToDictionary(pair => pair.Key, pair => pair.Value); var nodeList = preprocessor.GetNodeList(sortedChars); var tree = preprocessor.GetHuffmanTree(nodeList); var codes = preprocessor.GetCharCodes(tree); var compressedText = compressor.GetCompressedText(fileContent, codes); codes.Add(compressedText.Length.ToString(), new byte[0]); var codesText = DictionaryConverter.ConvertToString(codes); return(new Tuple <byte[], string>(compressedText, codesText)); }
public async Task Consume(ConsumeContext <ConsonantsMessage> context) { RateCheckerMessage msg = new RateCheckerMessage(); msg.corrId = context.Message.corrId; msg.Line = context.Message.Line; msg.VowelsCount = context.Message.VowelsCount; CharCounter ConsonantCounter = new CharCounter(Config.CONSONANTS); msg.ConsonantsCount = ConsonantCounter.Count(context.Message.Line); msg.linesCount = context.Message.linesCount; msg.tenant = context.Message.tenant; Console.WriteLine(msg.corrId); Console.WriteLine(msg.Line); Console.WriteLine(msg.VowelsCount); Console.WriteLine(msg.ConsonantsCount); Console.WriteLine(msg.linesCount); Console.WriteLine(msg.tenant); Publisher publisher = new Publisher(); publisher.GetBus().Publish <RateCheckerMessage>(msg); }
public StatsProcessor(CharCounter counter) { this.counter = counter; }
public ValuesController() { _transport = new Publisher(); _vowelsCounter = new CharCounter(Config.VOWELS); }
public HuffmanTree(CharCounter cc) { theCounts = cc; root = null; CreateTree( ); }
public HuffmanTree( ) { theCounts = new CharCounter( ); root = null; }