public void StandardDecoderDecodeOutput() { //given int[] input = new int[] { 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0 }; MockDecoderFileWriter mockDecoderFileWriter = new MockDecoderFileWriter(); var symbolQuantityDic = new Dictionary <string, ushort>() { { "A", 4 }, { "B", 3 }, { "C", 2 }, { "D", 1 } }; MockDecoderReader mockDecoderReader = new MockDecoderReader(input, symbolQuantityDic); //when StandardHuffmanDecoderInterface standardHuffmanDecoder = new StandardHuffmanDecoderInterface(mockDecoderReader, mockDecoderFileWriter); standardHuffmanDecoder.Decode(); //then mockDecoderFileWriter.AssertEquals(new List <byte>() { (byte)'A', (byte)'B', (byte)'C', (byte)'A', (byte)'B', (byte)'D', (byte)'A', (byte)'B', (byte)'C', (byte)'A' }); }
public void PairDecoderDecodeOutput() { //given int[] input = new int[] { 1, 1, 0, 1, 0, 1, 1, 0 }; MockDecoderFileWriter mockDecoderFileWriter = new MockDecoderFileWriter(); var symbolQuantityDic = new Dictionary <string, ushort>() { { "AB", 2 }, { "CA", 2 }, { "BD", 1 } }; MockDecoderReader mockDecoderReader = new MockDecoderReader(input, symbolQuantityDic); //when PairHuffmanDecoderInterface pairHuffmanDecoder = new PairHuffmanDecoderInterface(mockDecoderReader, mockDecoderFileWriter, true); pairHuffmanDecoder.Decode(); //then mockDecoderFileWriter.AssertEquals(new List <byte>() { (byte)'A', (byte)'B', (byte)'C', (byte)'A', (byte)'B', (byte)'D', (byte)'A', (byte)'B', (byte)'C', (byte)'A' }); }
public void MarkowDecoderDecodeOutput() { //given int[] input = new int[] { 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0 }; MockDecoderFileWriter mockDecoderFileWriter = new MockDecoderFileWriter(); var symbolQuantityDic = new Dictionary <string, ushort>() { { "A", 1 }, { "AA", 2 }, { "AB", 1 }, { "AC", 1 }, { "BC", 1 }, { "BA", 1 }, { "CA", 1 }, { "CD", 1 }, { "DB", 1 } }; //{ // { new DefaultableSymbol<byte>(true), new Dictionary<byte, int>() // { // {(byte) 'A', 1} // } // }, // { new DefaultableSymbol<byte>((byte) 'A'), new Dictionary<byte, int>() // { // {(byte) 'A', 2}, // {(byte) 'B', 1}, // {(byte) 'C', 1} // } // }, // { new DefaultableSymbol<byte>((byte) 'B'), new Dictionary<byte, int>() // { // {(byte) 'C', 1}, // {(byte) 'A', 1} // } // }, // { new DefaultableSymbol<byte>((byte) 'C'), new Dictionary<byte, int>() // { // {(byte) 'A', 1}, // {(byte) 'D', 1} // } // }, // { new DefaultableSymbol<byte>((byte) 'D'), new Dictionary<byte, int>() // { // {(byte) 'B', 1} // } // }, //}; MockDecoderReader mockDecoderReader = new MockDecoderReader(input, symbolQuantityDic); //when MarkowHuffmanDecoderInterface markowHuffmanDecoder = new MarkowHuffmanDecoderInterface(mockDecoderReader, mockDecoderFileWriter); markowHuffmanDecoder.Decode(); //then mockDecoderFileWriter.AssertEquals(new List <byte>() { (byte)'A', (byte)'A', (byte)'B', (byte)'C', (byte)'A', (byte)'C', (byte)'D', (byte)'B', (byte)'A', (byte)'A' }); }