public void CappedCollectionTest() { var Stats2 = new RedBlackTreeWithStats<int>(); Stats2.CappedToNumberOfElements = 4; Stats2.Add(0); Stats2.Add(1); Stats2.Add(2); Stats2.Add(3); Assert.AreEqual("0,1,2,3", String.Join(",", Stats2.All)); Assert.AreEqual(4, Stats2.Count); Stats2.Add(4); Assert.AreEqual("0,1,2,3", String.Join(",", Stats2.All)); Assert.AreEqual(4, Stats2.Count); Stats2.Add(-1); Assert.AreEqual("-1,0,1,2", String.Join(",", Stats2.All)); Assert.AreEqual(4, Stats2.Count); }
public UserScore UpdateUserScore(uint UserId, uint ScoreTimeStamp, int ScoreValue) { bool IsNew = false; var UserScore = this.UserScoresByUserId.GetOrCreate(UserId, () => { var NewUserScore = new UserScore() { UserId = UserId, ScoreTimeStamp = ScoreTimeStamp, ScoreValue = ScoreValue, }; Tree.Add(NewUserScore); IsNew = true; return(NewUserScore); }); if (!IsNew && UserScore.ShouldUpdate(ScoreTimeStamp, ScoreValue)) { this.Tree.Remove(UserScore); { UserScore.SetScore(ScoreTimeStamp, ScoreValue); } this.Tree.Add(UserScore); } if (this.CappedCount > -1) { while (this.UserScoresByUserId.Count > this.CappedCount) { // Not synchronized for performance! this.UserScoresByUserId.Remove(this.Tree.BackElement.UserId); this.Tree.RemoveBack(); } } return(UserScore); }
public void CappedCollectionTest() { var Stats2 = new RedBlackTreeWithStats <int>(); Stats2.CappedToNumberOfElements = 4; Stats2.Add(0); Stats2.Add(1); Stats2.Add(2); Stats2.Add(3); Assert.AreEqual("0,1,2,3", Stats2.All.ToStringArray()); Assert.AreEqual(4, Stats2.Count); Stats2.Add(4); Assert.AreEqual("0,1,2,3", Stats2.All.ToStringArray()); Assert.AreEqual(4, Stats2.Count); Stats2.Add(-1); Assert.AreEqual("-1,0,1,2", Stats2.All.ToStringArray()); Assert.AreEqual(4, Stats2.Count); }
public void Initialize1() { Stats = new RedBlackTreeWithStats <int>(); Stats.Add(5); //Stats.PrintTree(); //Console.WriteLine("-------------------------------"); Stats.Add(4); //Stats.PrintTree(); //Console.WriteLine("-------------------------------"); Stats.Add(6); Stats.Add(3); Stats.Add(2); Stats.Add(1); Stats.Add(11); Stats.Add(7); Stats.Add(8); Stats.Add(9); Stats.Add(10); Stats.Add(0); }
public void Initialize1() { Stats = new RedBlackTreeWithStats<int>(); Stats.Add(5); //Stats.PrintTree(); //Console.WriteLine("-------------------------------"); Stats.Add(4); //Stats.PrintTree(); //Console.WriteLine("-------------------------------"); Stats.Add(6); Stats.Add(3); Stats.Add(2); Stats.Add(1); Stats.Add(11); Stats.Add(7); Stats.Add(8); Stats.Add(9); Stats.Add(10); Stats.Add(0); }