public void QuoteStore_MT_ReadRangeOfQuotesWhenManyWritesInQuotes() { var expDate = new DateTime(2013, 08, 07, 22, 35, 00, DateTimeKind.Utc); var quoteStore = new QuoteStore(); for (int i = 0; i < 1000; i+=10) { int i1 = i; new Thread(() => { for (int j = 0; j < 10; j++) { quoteStore.Add(new Quote { Symbol = "EURUSD", Ask = 1.33925, Bid = 1.33908, Time = expDate.AddSeconds(i1 + j) }); Thread.Sleep(1); } }).Start(); } var actQuote = quoteStore.GetRange(expDate.AddSeconds(10), expDate.AddSeconds(50)); int k = 0; foreach (var quote in actQuote) { Debug.Print("Step " + k + " " + quote.Time.ToString(CultureInfo.InvariantCulture)); k += 1; } }
public void QuoteStore_GetRangeOfQoutes() { var expDate = new DateTime(2013, 08, 07, 22, 35, 00, DateTimeKind.Utc); var expDate2 = expDate.AddMinutes(2); var expDate3 = expDate.AddMinutes(3); var expDate4 = expDate.AddMinutes(5); var expQuote = new Quote { Symbol = "EURUSD", Ask = 1.33924, Bid = 1.33907, Time = expDate }; var expQuote2 = new Quote { Symbol = "EURUSD", Ask = 1.33925, Bid = 1.33908, Time = expDate2 }; var expQuote3 = new Quote { Symbol = "EURUSD", Ask = 1.33929, Bid = 1.33912, Time = expDate3 }; var expQuote4 = new Quote { Symbol = "EURUSD", Ask = 1.33927, Bid = 1.33910, Time = expDate4 }; var quoteStore = new QuoteStore(); quoteStore.Add(expQuote); quoteStore.Add(expQuote2); quoteStore.Add(expQuote3); quoteStore.Add(expQuote4); var actQuotes = quoteStore.GetRange(expDate2, expDate3).ToList(); Assert.AreEqual(false, actQuotes.Exists(p => p.Time == expDate)); Assert.AreEqual(true, actQuotes.Exists(p => p.Time == expDate2)); Assert.AreEqual(true, actQuotes.Exists(p => p.Time == expDate3)); Assert.AreEqual(false, actQuotes.Exists(p => p.Time == expDate4)); }