TaggedFollBelow was complete crap (by me). Rewrote it more efficiently.
[SXSI/XMLTree.git] / test_XML.cpp
1 \r
2 \r
3 #include "XMLTree.h"\r
4 \r
5 \r
6 void traverseXML(XMLTree *X, treeNode x)\r
7  {\r
8     int j;\r
9     int d = X->NumChildren(x);\r
10     treeNode y;\r
11    \r
12     y = X->FirstChild(x);\r
13     for (j = 0; j < d; j++) {\r
14        traverseXML(X, y);\r
15        y = X->NextSibling(y);\r
16     } \r
17  }\r
18 \r
19 \r
20 int main() \r
21  {\r
22     XMLTree *X, *Y;\r
23     int rr, n, i;\r
24     unsigned char openTag[]="A", closeTag[]="/A", filename[]="testXML", text[]="Hello World";\r
25     treeNode x;\r
26 \r
27     n = 99999;\r
28 \r
29     X = new XMLTree();\r
30 \r
31     \r
32 \r
33     X->OpenDocument(false, 32);\r
34 \r
35     rr = 0;\r
36     for (i = 1; i < n; i++) {\r
37       //if (rand() % 100 < r) setbit(B,i,1);\r
38       if (rr > (n-i)) {\r
39         printf("???? rr=%d n=%d i=%d\n",rr,n,i);\r
40         //exit(1);\r
41       } else if (rr >= (n-i)) {\r
42         X->NewClosingTag(closeTag);\r
43         if ((1+(int) (2.0*rand()/(RAND_MAX+1.0))) == 1)\r
44            X->NewEmptyText();\r
45         else X->NewText(text);\r
46         rr--;\r
47       } \r
48       else {\r
49          if (rand() % (rr+1) < (rr+1)/2 || (rr<=1)) {\r
50            X->NewOpenTag(openTag);\r
51            if ((1+(int) (2.0*rand()/(RAND_MAX+1.0))) == 1)\r
52               X->NewEmptyText();\r
53            else X->NewText(text);\r
54            rr++;\r
55          } \r
56          else {\r
57            X->NewClosingTag(closeTag);\r
58            if ((1+(int) (2.0*rand()/(RAND_MAX+1.0))) <= 1)\r
59               X->NewEmptyText();\r
60            else X->NewText(text);\r
61            rr--;\r
62          }\r
63       }\r
64     }\r
65     \r
66     X->CloseDocument();\r
67     \r
68     for (i=0; i <= (n+1)/2; i++) \r
69        X->TextXMLId(i);\r
70     \r
71     x = X->Root();\r
72     \r
73     traverseXML(X, x);    \r
74 \r
75     X->Save(filename);\r
76 \r
77     //delete X;\r
78 \r
79 //    X = XMLTree::Load(filename, 32);\r
80     \r
81   //  x = X->Root();\r
82     \r
83     //traverseXML(X, x);    \r
84     \r
85  }\r
86 \r