public void Decode_NumberOfSymbolsReturnedIsEqualToNumberOfBits() { //given var decoder = new OneSymbolDecoder <char>('x'); var input = new MockDecoderInput(new List <int> { 1, 1, 1, 1 }); var output = new MockDecoderOutput(new List <char> { 'x', 'x', 'x', 'x' }); //when decoder.Decode(input, output); //then output.AssertCorrectOutput(); }
public void Decode_FourSymbols_DeepTree() { //given var tree = MockHuffmanTreeBuilder.Build('a', '#', 'b', '#', 'c', 'd'); var decoder = new HuffmanDecoder <char>(tree); var input = new MockDecoderInput(new List <int> { 0, 1, 0, 1, 1, 0, 1, 1, 1 }); var output = new MockDecoderOutput(new List <char> { 'a', 'b', 'c', 'd' }); //when decoder.Decode(input, output); //then output.AssertCorrectOutput(); }
public void Decode_ThreeSymbols_TwoAreRight() { //given var tree = MockHuffmanTreeBuilder.Build('c', '#', 'x', 'a'); var decoder = new HuffmanDecoder <char>(tree); var input = new MockDecoderInput(new List <int> { 0, 1, 1, 1, 0 }); var output = new MockDecoderOutput(new List <char> { 'c', 'a', 'x' }); //when decoder.Decode(input, output); //then output.AssertCorrectOutput(); }