public void TransferToExtendedTest()
        {
            var q1 = new PriorityQueueOptimized <CPersonWithIndex>(sm_peopleWithIndex);
            var q2 = new PriorityQueueExtended <CPersonWithIndex>(q1);

            var arr1 = q1.ToArray();
            var arr2 = q2.ToArray();

            Assert.AreEqual(arr1.Length, arr2.Length, "Array lengths aren't equal");

            for (var i = 0; i < arr1.Length; i++)
            {
                Assert.AreEqual(arr1[i], arr2[i], "The objects are not equal at index " + i);
            }
        }
        public void TransferToDifferentPQTest()
        {
            var q1 = new PriorityQueueExtended <CPersonWithIndex>(sm_peopleWithIndex);
            var q2 = new PriorityQueueOptimized <CPersonWithIndex>(q1, LambdaComparer <CPersonWithIndex> .FromFunc((_l, _r) => _r.Age - _l.Age));

            var arr1 = q1.ToArray();
            var arr2 = q2.ToArray();

            Assert.AreEqual(arr1.Length, arr2.Length, "Array lengths aren't equal");

            for (var i = 0; i < arr1.Length; i++)
            {
                var j = arr1.Length - i - 1;
                Assert.AreEqual(arr1[i], arr2[j], "The objects are not equal at index " + i + " / " + j);
            }
        }
        public void GeneralIEnumerableOptimizedTest()
        {
            var q = new PriorityQueueOptimized <CPersonWithIndex>(EnumPeople());

            VerifyGeneralEnumerable(q);
        }