public virtual void TestGetCommonAncestor()
        {
            IndexedWord common = graph.GetCommonAncestor(graph.GetNodeByIndex(43), graph.GetNodeByIndex(44));

            NUnit.Framework.Assert.AreEqual(45, common.Index());
            common = graph.GetCommonAncestor(graph.GetNodeByIndex(41), graph.GetNodeByIndex(39));
            NUnit.Framework.Assert.AreEqual(41, common.Index());
            common = graph.GetCommonAncestor(graph.GetNodeByIndex(39), graph.GetNodeByIndex(41));
            NUnit.Framework.Assert.AreEqual(41, common.Index());
            common = graph.GetCommonAncestor(graph.GetNodeByIndex(40), graph.GetNodeByIndex(42));
            NUnit.Framework.Assert.AreEqual(41, common.Index());
            // too far for this method
            common = graph.GetCommonAncestor(graph.GetNodeByIndex(10), graph.GetNodeByIndex(42));
            NUnit.Framework.Assert.AreEqual(null, common);
            common = graph.GetCommonAncestor(graph.GetNodeByIndex(10), graph.GetNodeByIndex(10));
            NUnit.Framework.Assert.AreEqual(10, common.Index());
            common = graph.GetCommonAncestor(graph.GetNodeByIndex(40), graph.GetNodeByIndex(40));
            NUnit.Framework.Assert.AreEqual(40, common.Index());
            // a couple tests at the top of the graph
            common = graph.GetCommonAncestor(graph.GetNodeByIndex(10), graph.GetNodeByIndex(1));
            NUnit.Framework.Assert.AreEqual(10, common.Index());
            common = graph.GetCommonAncestor(graph.GetNodeByIndex(1), graph.GetNodeByIndex(10));
            NUnit.Framework.Assert.AreEqual(10, common.Index());
        }