public void C12_treeNbDocumentsTest()
        {
            ContainsNode root = new ContainsNode("root", null, true);
            ContainsNode n1 = root.addNewNode("n1", true);
            ContainsNode n11 = n1.addNewNode("n11", true);
            n11.incNbDocs(2);
            ContainsNode n12 = n1.addNewNode("n12", true);
            n11.incNbDocs(1);
            ContainsNode n2 = root.addNewNode("n2", true);
            n2.incNbDocs(1);
            ContainsNode n21 = n2.addNewNode("n21", true);
            n21.incNbDocs(5);
            ContainsNode n22 = n2.addNewNode("n22", true);

            Assert.AreEqual(9, root.computeNbDocuments(), "root.computeNbDocuments()");
            Assert.AreEqual(9, root.getNbDocuments(), "root.getNbDocuments()");
            int nbNodes = 1; // Au moins root
            ContainsNode node = root;
            while ((node = node.next()) != null) {
                nbNodes++;
            }
            Assert.AreEqual(7, nbNodes, "next()");
        }
        public void C13_treeNonMandatoryButNotEmptyTest()
        {
            ContainsNode root = new ContainsNode("root", null, true);
            ContainsNode n1 = root.addNewNode("n1", true);
            ContainsNode n11 = n1.addNewNode("n11", false);
            n11.incNbDocs(2);
            ContainsNode n12 = n1.addNewNode("n12", true);
            n11.incNbDocs(1);
            ContainsNode n2 = root.addNewNode("n2", false);
            n2.incNbDocs(1);
            ContainsNode n21 = n2.addNewNode("n21", true);
            n21.incNbDocs(5);
            ContainsNode n22 = n2.addNewNode("n22", true);

            Assert.AreEqual(9, root.computeNbDocuments(), "root.computeNbDocuments()");
            Assert.AreEqual(9, root.getNbDocuments(), "root.getNbDocuments()");
            root.trunkChildrenOfEmptyBranches();
            int nbNodes = 1; // Au moins root
            ContainsNode node = root;
            while ((node = node.next()) != null) {
                nbNodes++;
            }
            Assert.AreEqual(7, nbNodes, "next()");
        }
        public void C15_getRelativeContextTest()
        {
            ContainsNode root = new ContainsNode("root", null, true);
            ContainsNode A_1 = root.addNewNode("A[#1]", true);
            ContainsNode AA_1 = A_1.addNewNode("AA", false);
                                AA_1.addNewNode("AAA[#1]", true);
                                AA_1.addNewNode("AAA[#2]", true);
            ContainsNode tst_1 = AA_1.addNewNode("AAA[#3]", true);

            ContainsNode BB_1 = A_1.addNewNode("BB", true);
                                BB_1.addNewNode("BBB[#1]", true);
            ContainsNode tst_2 = BB_1.addNewNode("BBB[#2]", true);
                                BB_1.addNewNode("BBB[#3]", true);

            ContainsNode A_2 = root.addNewNode("A[#2]", false);
            ContainsNode AA_2 = A_2.addNewNode("AA", false);
            ContainsNode tst_3 = AA_2.addNewNode("AAA[#1]", true);
                                AA_2.addNewNode("AAA[#2]", true);
                                AA_2.addNewNode("AAA[#3]", true);

            ContainsNode BB_2 = A_2.addNewNode("BB", true);
                                BB_2.addNewNode("BBB[#1]", true);
                                BB_2.addNewNode("BBB[#2]", true);
                                BB_2.addNewNode("BBB[#3]", true);
            ContainsNode tst_4 = BB_2.addNewNode("BBB[#4]", true);

            Assert.AreEqual("A[#1]//AAA[#3]", tst_1.getRelativeContext(), false, "tst_1.getRelativeContext()");
            Assert.AreEqual("A[#1]//BBB[#2]", tst_2.getRelativeContext(), false, "tst_2.getRelativeContext()");
            Assert.AreEqual("A[#2]//AAA[#1]", tst_3.getRelativeContext(), false, "tst_3.getRelativeContext()");
            Assert.AreEqual("A[#2]//BBB[#4]", tst_4.getRelativeContext(), false, "tst_4.getRelativeContext()");
        }