コード例 #1
0
ファイル: Huff3Tests.cs プロジェクト: prusovak2/Huffman1
        public void CheckHeaderTest()
        {
            Stream           s       = File.OpenRead(@"TestFiles\Huff3Tests\simple.in.huff");
            BinaryReader     br      = new BinaryReader(s);
            ulong            u       = br.ReadUInt64();
            Huff3TreeBuilder b       = new Huff3TreeBuilder();
            bool             correct = b.checkHeader(u);

            Assert.IsTrue(correct);
            ulong something = 238723328;

            correct = b.checkHeader(something);
            Assert.IsFalse(correct);
        }
コード例 #2
0
ファイル: Huff3Tests.cs プロジェクト: prusovak2/Huffman1
        public void ReadTreeAndHeaderTest()
        {
            string inputFile = @"TestFiles\Huff3Tests\simple4.in.huff";

            string[] arg = new string[1];
            arg[0] = inputFile;
            Program.Huff3OpenFiles(arg, out BinaryReader reader, out BinaryWriter writer);
            Huff3TreeBuilder b = new Huff3TreeBuilder();

            bool success = b.ReadHeaderAndTreeFromBinaryFile(reader);

            Assert.IsNotNull(b.Root);
            TreePrinter.PrintNiceTree(b.Root, 0);
            reader.Close();
            writer.Close();
        }
コード例 #3
0
ファイル: Huff3Tests.cs プロジェクト: prusovak2/Huffman1
        public void ReadTreeTest()
        {
            string inputFile = @"TestFiles\Huff3Tests\simple4.in.huff";

            string[] arg = new string[1];
            arg[0] = inputFile;
            Program.Huff3OpenFiles(arg, out BinaryReader reader, out BinaryWriter writer);
            reader.ReadUInt64(); //skip header
            Huff3TreeBuilder b = new Huff3TreeBuilder();

            bool f = false;
            Node n = b.ReadTreeFromBinaryFile(reader, ref f);

            Assert.IsNotNull(n);
            TreePrinter.PrintNiceTree(n, 0);
            Console.WriteLine(b.NumberOfSymbols);
            reader.Close();
            writer.Close();
        }
コード例 #4
0
ファイル: Huff3Tests.cs プロジェクト: prusovak2/Huffman1
        public void CreateNodeTest()
        {
            string inputFile = @"TestFiles\Huff3Tests\simple.in.huff";

            string[] arg = new string[1];
            arg[0] = inputFile;
            Program.Huff3OpenFiles(arg, out BinaryReader reader, out BinaryWriter writer);
            Huff3TreeBuilder b = new Huff3TreeBuilder();

            reader.ReadInt64(); //header
            ulong input = reader.ReadUInt64();
            Node  node  = b.IdentifyAndCreateNode(input);

            if (node is Leaf)
            {
                Assert.Fail("typecheck error");
            }
            Console.WriteLine("something");
            Assert.AreEqual((ulong)6, node.Weight);

            input = reader.ReadUInt64();
            node  = b.IdentifyAndCreateNode(input);
            if (node is InnerNode)
            {
                Assert.Fail("typecheck error");
            }
            Console.WriteLine("something");
            Assert.AreEqual((ulong)3, node.Weight);
            Assert.AreEqual((byte)97, ((Leaf)node).Symbol);

            input = reader.ReadUInt64();
            node  = b.IdentifyAndCreateNode(input);
            if (node is Leaf)
            {
                Assert.Fail("typecheck error");
            }
            Console.WriteLine("something");
            Assert.AreEqual((ulong)3, node.Weight);

            input = reader.ReadUInt64();
            node  = b.IdentifyAndCreateNode(input);
            if (node is InnerNode)
            {
                Assert.Fail("typecheck error");
            }
            Console.WriteLine("something");
            Assert.AreEqual((ulong)1, node.Weight);
            Assert.AreEqual((byte)99, ((Leaf)node).Symbol);

            input = reader.ReadUInt64();
            node  = b.IdentifyAndCreateNode(input);
            if (node is InnerNode)
            {
                Assert.Fail("typecheck error");
            }
            Console.WriteLine("something");
            Assert.AreEqual((ulong)2, node.Weight);
            Assert.AreEqual((byte)98, ((Leaf)node).Symbol);


            input = reader.ReadUInt64();
            Console.WriteLine(input);

            reader.Close();
            writer.Close();
        }