public void Test2()
        {
            const string words = "What's in a name? That which we call a rose by any other name would smell as sweet.";
            var          t     = words.Split().Aggregate(ScheduledBinomialHeap <string> .Empty, (current, word) => ScheduledBinomialHeap <string> .Insert(word, current));

            Assert.AreEqual("[[as: [sweet.]] -$- ]", DumpHeap(t));

            var x = ScheduledBinomialHeap <string> .Merge(t, ScheduledBinomialHeap <string> .Empty);

            Assert.AreEqual("[[as: [sweet.]][a: [a: [call: [That: [which]], [we]], [in: [What's]], [name?]], [name: [smell: [would]], [other]], [any: [by]], [rose]]]", DumpHeap(x));
        }
        public void MergeTest()
        {
            const string data1 = "What's in a name?";
            var          ts1   = data1.Split().Aggregate(ScheduledBinomialHeap <string> .Empty, (current, word) => ScheduledBinomialHeap <string> .Insert(word, current));

            const string data2 = "That which we call a rose by any other name would smell as sweet";
            var          ts2   = data2.Split().Aggregate(ScheduledBinomialHeap <string> .Empty, (current, word) => ScheduledBinomialHeap <string> .Insert(word, current));

            var t = ScheduledBinomialHeap <string> .Merge(ts1, ts2);

            Assert.AreEqual("[[as: [sweet]][a: [a: [call: [That: [which]], [we]], [any: [by]], [rose]], [name: [smell: [would]], [other]], [in: [What's]], [name?]]]", DumpHeap(t));
        }