public void TestCurrentLearnRate()
        {
            var afm = new SigmoidUserAsymmetricFactorModel() { LearnRate = 1.1f, Ratings = TestUtils.CreateRatings() };

            afm.InitModel();
            Assert.AreEqual(1.1f, afm.LearnRate);
            Assert.AreEqual(1.1f, afm.current_learnrate);
        }
 public void TestMatrixInit()
 {
     var afm = new SigmoidUserAsymmetricFactorModel() { Ratings = TestUtils.CreateRatings() };
     afm.InitModel();
     Assert.IsNotNull(afm.user_factors);
     Assert.IsNotNull(afm.item_factors);
     Assert.IsNotNull(afm.x);
     Assert.IsNotNull(afm.user_bias);
     Assert.IsNotNull(afm.item_bias);
 }
        public void TestDecay()
        {
            var afm = new SigmoidUserAsymmetricFactorModel()
            {
                LearnRate = 1.0f, LearnRateDecay = 0.5f,
                NumIter = 1, Ratings = TestUtils.CreateRatings()
            };

            afm.Train();
            Assert.AreEqual(0.5f, afm.current_learnrate);

            afm.Iterate();
            Assert.AreEqual(0.25f, afm.current_learnrate);
        }
 public void TestDefaultBehaviorIsNoDecay()
 {
     var afm = new SigmoidUserAsymmetricFactorModel() { LearnRate = 1.1f, NumIter = 10, Ratings = TestUtils.CreateRatings() };
     afm.Train();
     Assert.AreEqual(1.1f, afm.current_learnrate);
 }