public void TestFull()
        {
            var ratings = new StaticFloatRatings(2);

            Assert.AreEqual(0, ratings.Count);
            ratings.Add(1, 4, 0.3);
            Assert.AreEqual(1, ratings.Count);
            ratings.Add(1, 8, 0.2);
            Assert.AreEqual(2, ratings.Count);
            ratings.Add(2, 4, 0.2);
        }
        public void TestRemoveAt()
        {
            var ratings = new StaticFloatRatings(8);

            ratings.Add(1, 4, 0.3);
            ratings.Add(1, 8, 0.2);
            ratings.Add(2, 4, 0.2);
            ratings.Add(2, 2, 0.6);
            ratings.Add(2, 5, 0.4);
            ratings.Add(3, 7, 0.2);
            ratings.Add(3, 3, 0.3);
            ratings.Add(6, 3, 0.3);

            Assert.AreEqual(8, ratings.Count);
            ratings.RemoveAt(ratings.GetIndex(2, 5));
        }
        [Test()] public void TestMaxUserIDMaxItemID()
        {
            var ratings = new StaticFloatRatings(7);

            ratings.Add(1, 4, 0.3);
            ratings.Add(1, 8, 0.2);
            ratings.Add(2, 4, 0.2);
            ratings.Add(2, 2, 0.6);
            ratings.Add(2, 5, 0.4);
            ratings.Add(3, 7, 0.2);
            ratings.Add(6, 3, 0.3);

            Assert.AreEqual(6, ratings.MaxUserID);
            Assert.AreEqual(8, ratings.MaxItemID);
        }
        public void TestRemoveItem()
        {
            var ratings = new StaticFloatRatings(7);

            ratings.Add(1, 4, 0.3);
            ratings.Add(1, 8, 0.2);
            ratings.Add(2, 4, 0.2);
            ratings.Add(2, 2, 0.6);
            ratings.Add(2, 5, 0.4);
            ratings.Add(3, 4, 0.2);
            ratings.Add(3, 3, 0.3);

            Assert.AreEqual(7, ratings.Count);
            ratings.RemoveItem(4);
        }
        [Test()] public void TestAddRating()
        {
            var ratings = new StaticFloatRatings(7);

            ratings.Add(1, 4, 0.3f);
            Assert.AreEqual(1, ratings.Count);
            ratings.Add(1, 8, 0.2f);
            Assert.AreEqual(2, ratings.Count);
            ratings.Add(2, 4, 0.2f);
            ratings.Add(2, 2, 0.6f);
            ratings.Add(2, 5, 0.4f);
            ratings.Add(3, 7, 0.2f);
            ratings.Add(6, 3, 0.3f);

            Assert.AreEqual(0.4f, ratings.Get(2, 5));
            Assert.AreEqual(0.3f, ratings.Get(1, 4));
            Assert.AreEqual(0.3f, ratings.Get(6, 3));
            Assert.AreEqual(7, ratings.Count);
        }
        [Test()] public void TestGet()
        {
            var ratings = new StaticFloatRatings(8);

            ratings.Add(1, 4, 0.3f);
            ratings.Add(1, 8, 0.2f);
            ratings.Add(2, 4, 0.2f);
            ratings.Add(2, 2, 0.6f);
            ratings.Add(2, 5, 0.4f);
            ratings.Add(3, 4, 0.2f);
            ratings.Add(3, 3, 0.3f);
            ratings.Add(6, 3, 0.3f);

            // test Get
            Assert.AreEqual(0.2f, ratings.Get(2, 4));
            Assert.AreEqual(0.3f, ratings.Get(3, 3));
            Assert.AreEqual(0.3f, ratings.Get(6, 3));

            // test index[,]
            Assert.AreEqual(0.3f, ratings[1, 4]);
            Assert.AreEqual(0.2f, ratings[1, 8]);
            Assert.AreEqual(0.6f, ratings[2, 2]);
        }