public void Should_Resample_Bars_From_Ticks() { // Arrange var ticks = TickMessage.ParseFromFile(TestData.TestData.GetFileName(TestDataType.Ticks, DataDirection.Oldest)).ToList(); var intervals = IntervalMessage.ParseFromFile(TestData.TestData.GetFileName(TestDataType.Intervals_1s, DataDirection.Oldest)).ToList(); // Act var bars = ticks.ToHistoricalBars(TimeSpan.FromSeconds(1), DataDirection.Oldest).ToList().ToList(); // Assert Assert.IsNotEmpty(intervals); Assert.AreEqual(intervals.Count, bars.Count); for (var i = 0; i < intervals.Count; i++) { var interval = intervals[i]; var bar = bars[i]; // TODO: create comparable if (interval.Timestamp == bar.Timestamp && interval.Open == bar.Open && interval.High == bar.High && interval.Low == bar.Low && interval.Close == bar.Close && interval.PeriodVolume == bar.PeriodVolume && interval.TotalVolume == bar.TotalVolume) { continue; } throw new Exception(); } }
private static (IntervalMessage, FakeClock) GetTestMessage() { var fakeClock = new FakeClock(); var intervalMessage = new IntervalMessage(_delayInMinutes, "Hello there!", fakeClock); return(intervalMessage, fakeClock); }
public void Null_GivenNoWeightedItem() { var item = new IntervalMessage(); var weightedItem = MyRandom.ChooseRandomWeightedItem(new[] { item }); weightedItem.Should().BeNull(); }
public void SingleItem_GivenOneWeightedItem() { var item = new IntervalMessage("foo", 354); var weightedItem = MyRandom.ChooseRandomWeightedItem(new[] { item }); weightedItem.Should().Be(item); }
public async Task AddIntervalMessage(int userId, string message) { var user = await _dbContext.Users.FindAsync(userId); var newIntervalMessage = new IntervalMessage(message); user.IntervalMessages.Add(newIntervalMessage); }
public void Should_TryParse_Return_False_When_Invalid_Data_Overflow() { // Act var parsed = IntervalMessage.TryParse($"2018-06-29 16:12:40,185.2500,185.2600,185.2700,185.2800,0,0,{long.MaxValue},", out _); // Assert Assert.IsFalse(parsed); }
public void AddAutomatedMessageToManagedMessages() { var messagingSystem = new AutomatedMessagingSystem(); var automatedMessage = new IntervalMessage(1, "Welcome! If you are enjoying the content, please follow DevChatter for more!"); messagingSystem.Publish(automatedMessage); Assert.Contains(automatedMessage, messagingSystem.ManagedMessages); }
public void Should_Parse_IntervalMessage_Invariant(string cultureName) { // Arrange TestHelper.SetThreadCulture(cultureName); // Act var intervalMessageFromValues = IntervalMessage.Parse(_message); // Assert Assert.AreEqual(intervalMessageFromValues, _expectedMessage); }
public AutomatedMessage(IntervalMessage intervalMessage, IList <BufferedMessageSender> chatClients, IRepository repository, IClock clock) { _intervalMessage = intervalMessage; IntervalTimeSpan = TimeSpan.FromMinutes(intervalMessage.DelayInMinutes); _clock = clock; _chatClients = chatClients; _nextRunTime = intervalMessage.LastSent.AddMinutes(IntervalInMinutes); _repository = repository; }
public void Should_TryParse_Return_True(string cultureName) { // Arrange TestHelper.SetThreadCulture(cultureName); // Act var parsed = IntervalMessage.TryParse(_message, out var intervalMessage); // Assert Assert.IsTrue(parsed); Assert.AreEqual(intervalMessage, _expectedMessage); }
public void Should_Parse_IntervalMessage_Culture_Independent(string cultureName) { // Arrange TestHelper.SetThreadCulture(cultureName); var message = $"2018-06-29 16:12:40,185.2500,185.2600,185.2700,185.2800,{long.MaxValue},100,0,"; // Act var intervalMessage = new IntervalMessage(new DateTime(2018, 06, 29, 16, 12, 40), 185.25, 185.26, 185.27, 185.28, long.MaxValue, 100, 0); var intervalMessageFromValues = IntervalMessage.Parse(message); // Assert Assert.AreEqual(intervalMessage, intervalMessageFromValues); }
public void Should_Csv_IntervalMessage_With_RequestId_Invariant(string cultureName) { // Arrange TestHelper.SetThreadCulture(cultureName); var intervalMessage = new IntervalMessage(new DateTime(2020, 01, 01, 9, 30, 00), 1.01, 1.02, 1.03, 1.04, 1000, 1, 10, "TEST123"); // Act var csv = intervalMessage.ToCsv(); // Arrange var expectedCsv = "TEST123,2020-01-01 09:30:00,1.01,1.02,1.03,1.04,1000,1,10"; Assert.AreEqual(csv, expectedCsv); }
public void SingleItem_GivenMultipleItemsOnlyOneWeighted() { var item = new IntervalMessage("foo", 2); var weightedItems = new List <IntervalMessage> { item, new IntervalMessage("bar", 0), new IntervalMessage("fiz", 0), }; var weightedItem = MyRandom.ChooseRandomWeightedItem(weightedItems); weightedItem.Should().Be(item); }
/// <summary> /// Stream IQFeed IntervalMessage from disk to Lean TradeBar /// </summary> /// <param name="filename"></param> /// <param name="request"></param> /// <returns>Converted TradeBar</returns> private IEnumerable <BaseData> GetDataFromIntervalMessages(string filename, HistoryRequest request) { var dataTimeZone = _marketHoursDatabase.GetDataTimeZone(request.Symbol.ID.Market, request.Symbol, request.Symbol.SecurityType); foreach (var interval in IntervalMessage.ParseFromFile(filename)) { var iStartTime = interval.Timestamp; iStartTime = iStartTime.ConvertTo(TimeZones.NewYork, dataTimeZone); yield return(new TradeBar( iStartTime, request.Symbol, (decimal)interval.Open, (decimal)interval.High, (decimal)interval.Low, (decimal)interval.Close, interval.PeriodVolume )); } File.Delete(filename); }
public void Should_Return_InvalidData_Exception() { // Arrange var request = "request"; var intervalMessage = new IntervalMessage(new DateTime(2000, 01, 01, 9, 30, 00), 1, 1, 1, 1, 1, 1, 0); var invalidMessages = new List <InvalidMessage <IntervalMessage> >() { new InvalidMessage <IntervalMessage>(intervalMessage, intervalMessage.ToCsv()) }; var messages = new List <IntervalMessage>() { intervalMessage }; // Act var exception = _exceptionFactory.CreateNew(request, invalidMessages, messages); // Assert var expectedException = new InvalidDataIQFeedException <IntervalMessage>(request, invalidMessages, messages); Assert.AreEqual(exception, expectedException); }
public AutomatedMessage(IntervalMessage intervalMessage, IList <BufferedMessageSender> chatClients, IRepository repository) : this(intervalMessage, chatClients, repository, new SystemClock()) { }
public IntervalMessageTests() { _message = $"2018-06-29 16:12:40,185.2500,185.2600,185.2700,185.2800,{long.MaxValue},100,0,"; _expectedMessage = new IntervalMessage(new DateTime(2018, 06, 29, 16, 12, 40), 185.25, 185.26, 185.27, 185.28, long.MaxValue, 100, 0); }