public void CalculateDealVolumeInDepoCurrency() { const int volume = 10000; var deal = new MarketOrder { Symbol = "USDRUB", Volume = volume, Side = 1, PriceEnter = 1.3290f, TimeEnter = DateTime.Now.AddMinutes(-60 * 24 * 3), State = PositionState.Opened, ExpertComment = "", MasterOrder = 10001 }; var dicQuote = new Dictionary <string, List <QuoteData> >(); var quoteArc = new QuoteArchive(dicQuote); curveCalculator.CalculateDealVolumeInDepoCurrency(deal, new QuoteData(1.3820f, 1.3822f, DateTime.Now), "USD", quoteArc, DateTime.Now); Assert.AreEqual(0, deal.VolumeInDepoCurrency, "При разных валютах депозита и сделки и не инициализированом словаре котировок, метод не вернул правильное значение"); curveCalculator.CalculateDealVolumeInDepoCurrency(deal, new QuoteData(1.3820f, 1.3822f, DateTime.Now), "RUB", quoteArc, DateTime.Now); Assert.AreEqual(volume * (1.3822f + 1.3820f) / 2, deal.VolumeInDepoCurrency, "При одинаковых валютах депозита и сделки метод не вернул правильное значение"); foreach (var smb in DalSpot.Instance.GetTickerNames()) { dicQuote.Add(smb, dailyQuoteStorage.GetQuotes(smb).Select(q => new QuoteData(q.b, q.b, q.a)).ToList()); } quoteArc = new QuoteArchive(dicQuote); curveCalculator.CalculateDealVolumeInDepoCurrency(deal, new QuoteData(1.3820f, 1.3822f, DateTime.Now), "RUB", quoteArc, dicQuote["USDRUB"].First().time); Assert.AreEqual(volume * (1.3822f + 1.3820f) / 2, deal.VolumeInDepoCurrency, "При инициализированных всех данных и метод не вернул правильное значение"); }
public void TestLoadAndUpdate() { var stor = new DailyQuoteStorage(); try { stor.UpdateStorageSync(); } catch (Exception ex) { Assert.Fail("UpdateStorageSync() failed: " + ex.Message); } // удостовериться в наличии нужной котировки var quotes = stor.GetQuotes("EURUSD"); Assert.Greater(quotes.Count, 0, "GetQuotes(\"EURUSD\") - has some quotes"); // котировки за одну дату не повторяются Assert.AreEqual(quotes.Select(q => q.a.Date).Distinct().Count(), quotes.Count, "all dates are unique"); // прочитать котировки снова stor.UpdateStorageSync(); var quotesNew = stor.GetQuotes("EURUSD"); Assert.Less(quotesNew.Count - quotes.Count, 2, //quotes.SequenceEqual(quotesNew), "Прочитанные заново котировки - количество неизменно"); }