public void RemoveEntries_PreserveAtZero_LeaveNone_GetExpectedOrderAndWeights()
        {
            var weightedList = new WeightedList<string>();
            
            weightedList.Add("A");
            weightedList.Add("B");
            weightedList.Add("C");

            weightedList.Add("A");
            weightedList.Add("B");
            weightedList.Add("C");

            weightedList.Add("A");
            weightedList.Add("B");

            weightedList.Remove("A", false);
            weightedList.Remove("A", false);
            weightedList.Remove("A", false);

            List<string> list = weightedList.ToSortedList();

            Assert.AreEqual(3, weightedList.Count);
            Assert.AreEqual(3, list.Count);
            Assert.AreEqual("A", list[0]);
            Assert.AreEqual("C", list[1]);
            Assert.AreEqual("B", list[2]);
            Assert.AreEqual("A", weightedList.GetMinWeight());
            Assert.AreEqual("B", weightedList.GetMaxWeight());
        }
        public void AddEntries_GetExpectedOrderAndWeights()
        {
            var weightedList = new WeightedList<string>();
            
            weightedList.Add("A");
            weightedList.Add("B");
            weightedList.Add("C");

            weightedList.Add("A");
            weightedList.Add("B");

            weightedList.Add("A");

            List<string> list = weightedList.ToSortedList();

            Assert.AreEqual(3, weightedList.Count);
            Assert.AreEqual(3, list.Count);
            Assert.AreEqual("C", list[0]);
            Assert.AreEqual("B", list[1]);
            Assert.AreEqual("A", list[2]);
            Assert.AreEqual("C", weightedList.GetMinWeight());
            Assert.AreEqual("A", weightedList.GetMaxWeight());
        }