public void TestTimeSplit() { var ratings = new TimedRatings(); ratings.Add(0, 0, 5.0f, new DateTime(2011, 10, 31)); ratings.Add(0, 1, 4.5f, new DateTime(2011, 11, 1)); ratings.Add(1, 0, 1.0f, new DateTime(2011, 10, 31)); ratings.Add(1, 1, 2.5f, new DateTime(2011, 11, 2)); var split1 = new RatingsChronologicalSplit(ratings, new DateTime(2011, 11, 2)); Assert.AreEqual(3, split1.Train[0].Count); Assert.AreEqual(1, split1.Test[0].Count); Assert.AreEqual(2, split1.Train[0].ByUser[0].Count); Assert.AreEqual(1, split1.Train[0].ByUser[1].Count); Assert.AreEqual(0, split1.Test[0].ByUser[0].Count); Assert.AreEqual(1, split1.Test[0].ByUser[1].Count); Assert.AreEqual(new DateTime(2011, 10, 31), split1.Train[0].EarliestTime); Assert.AreEqual(new DateTime(2011, 11, 1), split1.Train[0].LatestTime); Assert.AreEqual(new DateTime(2011, 11, 2), split1.Test[0].EarliestTime); Assert.AreEqual(new DateTime(2011, 11, 2), split1.Test[0].LatestTime); var split2 = new RatingsChronologicalSplit(ratings, new DateTime(2011, 11, 1)); Assert.AreEqual(2, split2.Train[0].Count); Assert.AreEqual(2, split2.Test[0].Count); Assert.AreEqual(1, split2.Train[0].ByUser[0].Count); Assert.AreEqual(1, split2.Train[0].ByUser[1].Count); Assert.AreEqual(1, split2.Test[0].ByUser[0].Count); Assert.AreEqual(1, split2.Test[0].ByUser[1].Count); Assert.AreEqual(new DateTime(2011, 10, 31), split2.Train[0].EarliestTime); Assert.AreEqual(new DateTime(2011, 10, 31), split2.Train[0].LatestTime); Assert.AreEqual(new DateTime(2011, 11, 1), split2.Test[0].EarliestTime); Assert.AreEqual(new DateTime(2011, 11, 2), split2.Test[0].LatestTime); }