示例#1
0
        public void MultiThreadHuffman()
        {
            MultiThreadHuffman mh = new MultiThreadHuffman();

            byte[] testArray = TestArray;
            byte[] encodeArray;

            mh.Encode(ref testArray, out encodeArray);

            byte[] decodeArray;

            mh.Decode(ref encodeArray, out decodeArray);

            Assert.IsTrue(testArray.Length == decodeArray.Length);

            bool check = true;

            for (int i = 0; i < testArray.Length; i++)
            {
                if (testArray[i] != decodeArray[i])
                {
                    check = false;
                    break;
                }
            }

            Assert.IsTrue(check);
        }
示例#2
0
        private void button1_Click(object sender, EventArgs e)
        {
            MultiThreadHuffman mh = new MultiThreadHuffman();

            byte[] testArray = TestArray;
            byte[] encodeArray;

            DateTime dtStart = DateTime.Now;

            // encode
            mh.Encode(ref testArray, out encodeArray);

            byte[] decodeArray;

            // decode
            mh.Decode(ref encodeArray, out decodeArray);

            TimeSpan ts = DateTime.Now - dtStart;

            lblSourceArray.Text = string.Format("{0} Kb", testArray.Length / 1024);
            lblEncodeArray.Text = string.Format("{0} Kb", encodeArray.Length / 1024);

            double percent = 100 - 100.0 / testArray.Length * encodeArray.Length;

            lblPercent.Text = string.Format("{0}%", Convert.ToInt32(percent));

            lblTime.Text = string.Format("{0}:{1} s", ts.Seconds, ts.Milliseconds);
        }