public void ArchiveEmptyCollection_OneItemToArchive_OneToKeep_ReturnsOne() { var stack = new EquityInterDayHistoryStack(); var date = DateTime.UtcNow; var firstBar = date - TimeSpan.FromDays(2); var tb = this.GetTimeBar(); var tb2 = this.GetTimeBar(); var timeBarCollection = new EquityInterDayTimeBarCollection( new Market("1", "xlon", "London Stock Exchange", MarketTypes.STOCKEXCHANGE), firstBar, new[] { tb, tb2 }); var timeBarCollection2 = new EquityInterDayTimeBarCollection( new Market("1", "xlon", "London Stock Exchange", MarketTypes.STOCKEXCHANGE), DateTime.UtcNow, new[] { tb, tb2 }); stack.Add(timeBarCollection, firstBar); stack.Add(timeBarCollection2, date); var stackContents = stack.ActiveMarketHistory(); Assert.AreEqual(2, stackContents.Count); stack.ArchiveExpiredActiveItems(date); var stackContentsAfterExpire = stack.ActiveMarketHistory(); Assert.AreEqual(1, stackContentsAfterExpire.Count); Assert.AreEqual(timeBarCollection2, stackContentsAfterExpire.Pop()); }
public void DoesPush_IfDateDoesMatch_MultipleTimeBars() { var stack = new EquityInterDayHistoryStack(); var date = DateTime.UtcNow; var tb = this.GetTimeBar(); var tb2 = this.GetTimeBar(); var timeBarCollection = new EquityInterDayTimeBarCollection( new Market("1", "xlon", "London Stock Exchange", MarketTypes.STOCKEXCHANGE), DateTime.UtcNow - TimeSpan.FromMinutes(1), new[] { tb, tb2 }); var timeBarCollection2 = new EquityInterDayTimeBarCollection( new Market("1", "xlon", "London Stock Exchange", MarketTypes.STOCKEXCHANGE), DateTime.UtcNow, new[] { tb, tb2 }); stack.Add(timeBarCollection, date); stack.Add(timeBarCollection2, date); var stackContents = stack.ActiveMarketHistory(); Assert.AreEqual(2, stackContents.Count); Assert.AreEqual(timeBarCollection2, stackContents.Pop()); Assert.AreEqual(timeBarCollection, stackContents.Pop()); }
public void DoesNotPush_IfDateDoesNotMatch() { var stack = new EquityInterDayHistoryStack(); var date = DateTime.UtcNow - TimeSpan.FromDays(3); var tb = this.GetTimeBar(); var timeBarCollection = new EquityInterDayTimeBarCollection( new Market("1", "xlon", "London Stock Exchange", MarketTypes.STOCKEXCHANGE), DateTime.UtcNow, new[] { tb }); stack.Add(timeBarCollection, date); var stackContents = stack.ActiveMarketHistory(); Assert.IsEmpty(stackContents); }
public void DoesPush_IfDateDoesMatch() { var stack = new EquityInterDayHistoryStack(); var date = DateTime.UtcNow; var tb = this.GetTimeBar(); var timeBarCollection = new EquityInterDayTimeBarCollection( new Market("1", "xlon", "London Stock Exchange", MarketTypes.STOCKEXCHANGE), DateTime.UtcNow, new[] { tb }); stack.Add(timeBarCollection, date); var stackContents = stack.ActiveMarketHistory(); Assert.AreEqual(1, stackContents.Count); Assert.AreEqual(timeBarCollection, stackContents.Peek()); }
public void ArchiveEmptyCollection_DoesNotThrow() { var stack = new EquityInterDayHistoryStack(); Assert.DoesNotThrow(() => stack.ActiveMarketHistory()); }