static void Test7()
        {
            Node useMeTwice = new Node();
            Node root       = new NodeDerived(useMeTwice, useMeTwice, new Node());

            VerifyObjects("Test7", 3, root);
        }
        static void Test3()
        {
            s    = "a" + 1.ToString();
            n1   = new NodeDerived();
            n2   = new Node(new NodeDerived(), null);
            nnot = new NodeNotDerived();

            VerifyObjects("Test3", 3);
        }
        static void Test11()
        {
            Node useMeTwice = new Node();
            Node root       = new NodeDerived(useMeTwice, useMeTwice, new Node());

            root.o1 = new Node();
            root.o2 = root.o1;

            VerifyObjects("Test11", 4, root);
        }