Exemplo n.º 1
0
 public void SingleNodeTest()
 {
     TreeMultiNode<string> root = new TreeMultiNode<string>("1");
     TreeMultiNode<string>.TreeNodePreOrderIterator iter = root.GetPreOrderIterator();
     while(iter.Current != null)
     {
         Console.WriteLine(iter.Current.Val);
         iter++;
     }
 }
Exemplo n.º 2
0
 private void ValidateIteratorOutput(string[] validationList,TreeMultiNode<string> root)
 {
     int currValidation = 0;
     int iteratorCount = 0;
     TreeMultiNode<string>.TreeNodePreOrderIterator iter = root.GetPreOrderIterator();
     while(iter.Current != null)
     {
         Assert.AreEqual(validationList[currValidation],iter.Current.GetNode());
         currValidation++;
         iter++;
         iteratorCount++;
     }
     Assert.AreEqual(validationList.Length,iteratorCount);
 }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            const int MAX_BINARY_IMAGE = 255;

            List<byte []> split_up_ary = new List<byte[]>();

            byte [] aryToAdd = new byte [511];
            for(int currByte = 0;
                currByte < aryToAdd.Length;
                currByte++)
            {
                aryToAdd[currByte] = (byte) currByte;
            }

            int ary_len = aryToAdd.Length;
            int ary_offset = 0;
            while(ary_len > 0)
            {
                byte [] sub_image = null;
                if(ary_len > MAX_BINARY_IMAGE)
                {
                    sub_image = new byte [MAX_BINARY_IMAGE];
                }
                else
                {
                    sub_image = new byte [ary_len];
                }
                Array.ConstrainedCopy(aryToAdd ,    ary_offset,
                                      sub_image,    0,
                                      sub_image.Length);
#if false
                TreeMultiNode<TagParsingContext> aryNode =
                    new TreeMultiNode<TagParsingContext>(
                        m_director.GetParsingContext(ElementTypes.PREFIX,
                                                 0) );
                aryNode.Val.ByteAryVal = sub_image;
                parentNode.AddNode(aryNode);
#else
                split_up_ary.Add(sub_image);
#endif
                ary_len      -= MAX_BINARY_IMAGE;
                ary_offset   += MAX_BINARY_IMAGE;
            }
            foreach(byte [] img in split_up_ary)
            {
                Console.WriteLine(DumpAry(img));
            }
        }
Exemplo n.º 4
0
 public void DeepTreeTest()
 {
     string [] validation1 = {   "1",
                                 "1-0",
                                 "1-0-0",
                                 "1-0-0-0",
                                 "1-0-0-0-0",
                                 "1-0-0-0-0-0",
                                 "1-0-0-0-0-0-0",
                                 "1-0-0-0-0-0-0-0",
                                 "1-0-0-0-0-0-0-0-0",
                                 "1-0-0-0-0-0-0-0-0-0",
                             };
     // single node deep tree
     TreeMultiNode<string> root = new TreeMultiNode<string>("1");
     root.AddNode(new TreeMultiNode<string>("1-0"));
     TreeMultiNode<string> curr = root.Children[0];
     curr.AddNode(new TreeMultiNode<string>("1-0-0"));
     curr = curr.Children[0];
     curr.AddNode(new TreeMultiNode<string>("1-0-0-0"));
     curr = curr.Children[0];
     curr.AddNode(new TreeMultiNode<string>("1-0-0-0-0"));
     curr = curr.Children[0];
     curr.AddNode(new TreeMultiNode<string>("1-0-0-0-0-0"));
     curr = curr.Children[0];
     curr.AddNode(new TreeMultiNode<string>("1-0-0-0-0-0-0"));
     curr = curr.Children[0];
     curr.AddNode(new TreeMultiNode<string>("1-0-0-0-0-0-0-0"));
     curr = curr.Children[0];
     curr.AddNode(new TreeMultiNode<string>("1-0-0-0-0-0-0-0-0"));
     curr = curr.Children[0];
     curr.AddNode(new TreeMultiNode<string>("1-0-0-0-0-0-0-0-0-0"));
     
     TreeMultiNode<string>.TreeNodePreOrderIterator iter = root.GetPreOrderIterator();
     while(iter.Current != null)
     {
         Console.WriteLine(iter.Current.Val);
         iter++;
     }
     ValidateIteratorOutput(validation1,root);
 }
Exemplo n.º 5
0
        public void BalancedTreeTest()
        {

            string [] validation1 = {   "1",
                                        "1-0",
                                        "1-1",
                                        "1-2",
                                        "1-3",
                                    };
            string [] validation2 = {   "1",
                                        "1-0",
                                        "1-0-0",
                                        "1-0-1",
                                        "1-0-2",
                                        "1-0-3",
                                        "1-1",
                                        "1-2",
                                        "1-3",
                                    };
            string [] validation3 = {   "1",
                                        "1-0",
                                        "1-0-0",
                                        "1-0-0-0",
                                        "1-0-0-1",
                                        "1-0-0-2",
                                        "1-0-0-3",
                                        "1-0-0-4",
                                        "1-0-1",
                                        "1-0-2",
                                        "1-0-2-0",
                                        "1-0-2-1",
                                        "1-0-2-2",
                                        "1-0-2-3",
                                        "1-0-2-4",
                                        "1-0-3",
                                        "1-1",
                                        "1-2",
                                        "1-3",
                                    };
            string [] validation4 = {   "1",
                                        "1-0",
                                        "1-0-0",
                                        "1-0-0-0",
                                        "1-0-0-1",
                                        "1-0-0-2",
                                        "1-0-0-3",
                                        "1-0-0-4",
                                        "1-0-1",
                                        "1-0-2",
                                        "1-0-2-0",
                                        "1-0-2-1",
                                        "1-0-2-2",
                                        "1-0-2-3",
                                        "1-0-2-4",
                                        "1-0-3",
                                        "1-1",
                                        "1-1-0",
                                        "1-1-1",
                                        "1-1-2",
                                        "1-1-3",
                                        "1-2",
                                        "1-2-0",
                                        "1-2-1",
                                        "1-2-1-0",
                                        "1-2-1-1",
                                        "1-2-1-2",
                                        "1-2-1-3",
                                        "1-2-1-4",
                                        "1-2-2",
                                        "1-2-3",
                                        "1-3",
                                    };
            string [] validation5 = {   "1",
                                        "1-0",
                                        "1-0-0",
                                        "1-0-0-0",
                                        "1-0-0-1",
                                        "1-0-0-2",
                                        "1-0-0-3",
                                        "1-0-0-4",
                                        "1-0-1",
                                        "1-0-2",
                                        "1-0-2-0",
                                        "1-0-2-1",
                                        "1-0-2-2",
                                        "1-0-2-3",
                                        "1-0-2-4",
                                        "1-0-3",
                                        "1-1",
                                        "1-1-0",
                                        "1-1-1",
                                        "1-1-2",
                                        "1-1-3",
                                        "1-2",
                                        "1-2-0",
                                        "1-2-1",
                                        "1-2-1-0",
                                        "1-2-1-1",
                                        "1-2-1-2",
                                        "1-2-1-3",
                                        "1-2-1-4",
                                        "1-2-2",
                                        "1-2-3",
                                        "1-2-3-0",
                                        "1-2-3-1",
                                        "1-2-3-2",
                                        "1-2-3-3",
                                        "1-2-3-4",
                                        "1-3",
                                        "1-3-0",
                                        "1-3-1",
                                        "1-3-2",
                                        "1-3-3",
                                    };
            TreeMultiNode<string> root = new TreeMultiNode<string>("1");
            root.AddNode(new TreeMultiNode<string>("1-0"));
            root.AddNode(new TreeMultiNode<string>("1-1"));
            root.AddNode(new TreeMultiNode<string>("1-2"));
            root.AddNode(new TreeMultiNode<string>("1-3"));

            ValidateIteratorOutput(validation1,root);

            TreeMultiNode<string> curr = root.Children[0];
            curr.AddNode(new TreeMultiNode<string>("1-0-0"));
            curr.AddNode(new TreeMultiNode<string>("1-0-1"));
            curr.AddNode(new TreeMultiNode<string>("1-0-2"));
            curr.AddNode(new TreeMultiNode<string>("1-0-3"));

            ValidateIteratorOutput(validation2,root);

            curr = root.Children[0].Children[0];
            curr.AddNode(new TreeMultiNode<string>("1-0-0-0"));
            curr.AddNode(new TreeMultiNode<string>("1-0-0-1"));
            curr.AddNode(new TreeMultiNode<string>("1-0-0-2"));
            curr.AddNode(new TreeMultiNode<string>("1-0-0-3"));
            curr.AddNode(new TreeMultiNode<string>("1-0-0-4"));
            curr = root.Children[0].Children[2];
            curr.AddNode(new TreeMultiNode<string>("1-0-2-0"));
            curr.AddNode(new TreeMultiNode<string>("1-0-2-1"));
            curr.AddNode(new TreeMultiNode<string>("1-0-2-2"));
            curr.AddNode(new TreeMultiNode<string>("1-0-2-3"));
            curr.AddNode(new TreeMultiNode<string>("1-0-2-4"));
            ValidateIteratorOutput(validation3,root);

            curr = root.Children[1];
            curr.AddNode(new TreeMultiNode<string>("1-1-0"));
            curr.AddNode(new TreeMultiNode<string>("1-1-1"));
            curr.AddNode(new TreeMultiNode<string>("1-1-2"));
            curr.AddNode(new TreeMultiNode<string>("1-1-3"));
            curr = root.Children[2];
            curr.AddNode(new TreeMultiNode<string>("1-2-0"));
            curr.AddNode(new TreeMultiNode<string>("1-2-1"));
            curr.AddNode(new TreeMultiNode<string>("1-2-2"));
            curr.AddNode(new TreeMultiNode<string>("1-2-3"));
            curr = root.Children[2].Children[1];
            curr.AddNode(new TreeMultiNode<string>("1-2-1-0"));
            curr.AddNode(new TreeMultiNode<string>("1-2-1-1"));
            curr.AddNode(new TreeMultiNode<string>("1-2-1-2"));
            curr.AddNode(new TreeMultiNode<string>("1-2-1-3"));
            curr.AddNode(new TreeMultiNode<string>("1-2-1-4"));

            ValidateIteratorOutput(validation4,root);

            curr = root.Children[2].Children[3];
            curr = root.Children[2].Children[3];
            curr.AddNode(new TreeMultiNode<string>("1-2-3-0"));
            curr.AddNode(new TreeMultiNode<string>("1-2-3-1"));
            curr.AddNode(new TreeMultiNode<string>("1-2-3-2"));
            curr.AddNode(new TreeMultiNode<string>("1-2-3-3"));
            curr.AddNode(new TreeMultiNode<string>("1-2-3-4"));
            curr = root.Children[3];
            curr.AddNode(new TreeMultiNode<string>("1-3-0"));
            curr.AddNode(new TreeMultiNode<string>("1-3-1"));
            curr.AddNode(new TreeMultiNode<string>("1-3-2"));
            curr.AddNode(new TreeMultiNode<string>("1-3-3"));
            
            ValidateIteratorOutput(validation5,root);
            
            TreeMultiNode<string>.TreeNodePreOrderIterator iter = root.GetPreOrderIterator();
            while(iter.Current != null)
            {
                Console.WriteLine(iter.Current.Val);
                iter++;
            }
        }