public void TestReadWithNoLogFile() { var storePath = Path.Combine(BaseDirectory, "ReadWithNoLogFile"); Directory.CreateDirectory(storePath); var log = new PersistentStatisticsLog(_persistenceManager, storePath); Assert.AreEqual(0, log.GetStatistics().Count()); }
public void TestAppendPredicateStats() { var storePath = Path.Combine(BaseDirectory, "AppendPredicateStats"); Directory.CreateDirectory(storePath); var log = new PersistentStatisticsLog(_persistenceManager, storePath); var timestamp = DateTime.Now; var predicates = new Dictionary<string, ulong> { { "http://example.org/p1", 1 }, { "http://example.org/p2", 2 } }; log.AppendStatistics(new StoreStatistics(1, timestamp, 3, predicates)); Assert.IsTrue(File.Exists(Path.Combine(storePath, "stats.bs"))); Assert.IsTrue(File.Exists(Path.Combine(storePath, "statsheaders.bs"))); var allStats = log.GetStatistics().ToList(); Assert.AreEqual(1, allStats.Count); // Create a new log instance log = new PersistentStatisticsLog(_persistenceManager, storePath); timestamp = DateTime.Now; predicates = new Dictionary<string, ulong>{{"http://example.org/p1", 2}, {"http://example.org/p2", 2}, {"http://example.org/p3", 3}}; log.AppendStatistics(new StoreStatistics(2, timestamp, 7, predicates)); // Retrieve stats via a new log instance log = new PersistentStatisticsLog(_persistenceManager, storePath); var stats = log.GetStatistics().FirstOrDefault(); Assert.IsNotNull(stats); Assert.AreEqual(2UL, stats.CommitNumber); Assert.AreEqual(timestamp, stats.CommitTime); Assert.AreEqual(7UL, stats.TripleCount); Assert.IsTrue(stats.PredicateTripleCounts.ContainsKey("http://example.org/p1")); Assert.AreEqual(2UL, stats.PredicateTripleCounts["http://example.org/p1"]); Assert.IsTrue(stats.PredicateTripleCounts.ContainsKey("http://example.org/p2")); Assert.AreEqual(2UL, stats.PredicateTripleCounts["http://example.org/p2"]); Assert.IsTrue(stats.PredicateTripleCounts.ContainsKey("http://example.org/p3")); Assert.AreEqual(3UL, stats.PredicateTripleCounts["http://example.org/p3"]); Assert.AreEqual(3, stats.PredicateTripleCounts.Count); }
public void TestCreateNewLogFile() { var storePath = Path.Combine(BaseDirectory, "CreateNewLogFile"); Directory.CreateDirectory(storePath); var log = new PersistentStatisticsLog(_persistenceManager, storePath); var timestamp = DateTime.Now; var predicates = new Dictionary<string, ulong> {{"http://example.org/p1", 1}, {"http://example.org/p2", 2}}; log.AppendStatistics(new StoreStatistics(1, timestamp, 3, predicates)); Assert.IsTrue(File.Exists(Path.Combine(storePath, "stats.bs"))); Assert.IsTrue(File.Exists(Path.Combine(storePath, "statsheaders.bs"))); var allStats = log.GetStatistics().ToList(); Assert.AreEqual(1, allStats.Count); Assert.AreEqual(1UL, allStats[0].CommitNumber); Assert.AreEqual(timestamp, allStats[0].CommitTime); Assert.AreEqual(3UL, allStats[0].TripleCount); Assert.IsTrue(allStats[0].PredicateTripleCounts.ContainsKey("http://example.org/p1")); Assert.AreEqual(1UL, allStats[0].PredicateTripleCounts["http://example.org/p1"]); Assert.IsTrue(allStats[0].PredicateTripleCounts.ContainsKey("http://example.org/p2")); Assert.AreEqual(2UL, allStats[0].PredicateTripleCounts["http://example.org/p2"]); Assert.AreEqual(2, allStats[0].PredicateTripleCounts.Count); }
public void TestReadEmptyRecord() { var storePath = Path.Combine(BaseDirectory, "ReadEmptyRecord"); Directory.CreateDirectory(storePath); var log = new PersistentStatisticsLog(_persistenceManager, storePath); var timestamp = DateTime.Now; var predicates = new Dictionary<string, ulong>(); log.AppendStatistics(new StoreStatistics(1, timestamp, 0, predicates)); Assert.IsTrue(File.Exists(Path.Combine(storePath, "stats.bs"))); Assert.IsTrue(File.Exists(Path.Combine(storePath, "statsheaders.bs"))); var allStats = log.GetStatistics().ToList(); Assert.AreEqual(1, allStats.Count); Assert.AreEqual(1UL, allStats[0].CommitNumber); Assert.AreEqual(timestamp, allStats[0].CommitTime); Assert.AreEqual(0UL, allStats[0].TripleCount); Assert.AreEqual(0, allStats[0].PredicateTripleCounts.Count); }