public void AddOrUpdateTest()
        {
            var heap = new RadixHeapSet <string>();

            heap.AddOrUpdate(5, "a");
            heap.AddOrUpdate(1, "b");
            heap.Count.Should().Be(2);
            heap.PeekMin().Value.Value.Should().Be("b");
            heap.ExtractMin().Value.Value.Should().Be("b");
            heap.Count.Should().Be(1);

            heap.AddOrUpdate(3, "a");
            heap.Count.Should().Be(1);
            heap.PeekMin().Value.Value.Should().Be("a");
            heap.ExtractMin().Value.Value.Should().Be("a");
        }
        public void EmptyHeapTest()
        {
            var heap = new RadixHeapSet <int>();

            heap.Count.Should().Be(0);
            heap.MinPriority.Should().Be(0);
            heap.ExtractMin().IsNone().Should().BeTrue();
            Assert.Empty(heap);
        }