public void GetSourceMatchesGenerateZipFilePath(LeanDataLineTestParameters parameters) { var source = parameters.Data.GetSource(parameters.Config, parameters.Data.Time.Date, false); var normalizedSourcePath = new FileInfo(source.Source).FullName; var zipFilePath = LeanData.GenerateZipFilePath(Globals.DataFolder, parameters.Data.Symbol, parameters.Data.Time.Date, parameters.Resolution, parameters.TickType); var normalizeZipFilePath = new FileInfo(zipFilePath).FullName; var indexOfHash = normalizedSourcePath.LastIndexOf("#", StringComparison.Ordinal); if (indexOfHash > 0) { normalizedSourcePath = normalizedSourcePath.Substring(0, indexOfHash); } Assert.AreEqual(normalizeZipFilePath, normalizedSourcePath); }
public void GenerateLine(LeanDataLineTestParameters parameters) { var line = LeanData.GenerateLine(parameters.Data, parameters.SecurityType, parameters.Resolution); Assert.AreEqual(parameters.ExpectedLine, line); if (parameters.Config.Type == typeof(QuoteBar)) { Assert.AreEqual(line.Split(',').Length, 11); } if (parameters.Config.Type == typeof(TradeBar)) { Assert.AreEqual(line.Split(',').Length, 6); } }
public void ParsesGeneratedLines(LeanDataLineTestParameters parameters) { // ignore time zone issues here, we'll just say everything is UTC, so no conversions are performed var config = new SubscriptionDataConfig(parameters.Data.GetType(), parameters.Data.Symbol, parameters.Resolution, TimeZones.Utc, TimeZones.Utc, false, true, false); var factory = (BaseData)Activator.CreateInstance(parameters.Data.GetType()); var parsed = factory.Reader(config, parameters.ExpectedLine, parameters.Data.Time.Date, false); Assert.IsInstanceOf(config.Type, parsed); Assert.AreEqual(parameters.Data.Time, parsed.Time); Assert.AreEqual(parameters.Data.EndTime, parsed.EndTime); Assert.AreEqual(parameters.Data.Symbol, parsed.Symbol); Assert.AreEqual(parameters.Data.Value, parsed.Value); if (parsed is Tick) { var expected = (Tick)parameters.Data; var actual = (Tick)parsed; Assert.AreEqual(expected.Quantity, actual.Quantity); Assert.AreEqual(expected.BidPrice, actual.BidPrice); Assert.AreEqual(expected.AskPrice, actual.AskPrice); Assert.AreEqual(expected.BidSize, actual.BidSize); Assert.AreEqual(expected.AskSize, actual.AskSize); Assert.AreEqual(expected.Exchange, actual.Exchange); Assert.AreEqual(expected.SaleCondition, actual.SaleCondition); Assert.AreEqual(expected.Suspicious, actual.Suspicious); } else if (parsed is TradeBar) { var expected = (TradeBar)parameters.Data; var actual = (TradeBar)parsed; AssertBarsAreEqual(expected, actual); Assert.AreEqual(expected.Volume, actual.Volume); } else if (parsed is QuoteBar) { var expected = (QuoteBar)parameters.Data; var actual = (QuoteBar)parsed; AssertBarsAreEqual(expected.Bid, actual.Bid); AssertBarsAreEqual(expected.Ask, actual.Ask); Assert.AreEqual(expected.LastBidSize, actual.LastBidSize); Assert.AreEqual(expected.LastAskSize, actual.LastAskSize); } }
public void ParsesGeneratedLines(LeanDataLineTestParameters parameters) { // ignore time zone issues here, we'll just say everything is UTC, so no conversions are performed var factory = (BaseData) Activator.CreateInstance(parameters.Data.GetType()); var parsed = factory.Reader(parameters.Config, parameters.ExpectedLine, parameters.Data.Time.Date, false); Assert.IsInstanceOf(parameters.Config.Type, parsed); Assert.AreEqual(parameters.Data.Time, parsed.Time); Assert.AreEqual(parameters.Data.EndTime, parsed.EndTime); Assert.AreEqual(parameters.Data.Symbol, parsed.Symbol); Assert.AreEqual(parameters.Data.Value, parsed.Value); if (parsed is Tick) { var expected = (Tick) parameters.Data; var actual = (Tick) parsed; Assert.AreEqual(expected.Quantity, actual.Quantity); Assert.AreEqual(expected.BidPrice, actual.BidPrice); Assert.AreEqual(expected.AskPrice, actual.AskPrice); Assert.AreEqual(expected.BidSize, actual.BidSize); Assert.AreEqual(expected.AskSize, actual.AskSize); Assert.AreEqual(expected.Exchange, actual.Exchange); Assert.AreEqual(expected.SaleCondition, actual.SaleCondition); Assert.AreEqual(expected.Suspicious, actual.Suspicious); } else if (parsed is TradeBar) { var expected = (TradeBar) parameters.Data; var actual = (TradeBar) parsed; AssertBarsAreEqual(expected, actual); Assert.AreEqual(expected.Volume, actual.Volume); } else if (parsed is QuoteBar) { var expected = (QuoteBar) parameters.Data; var actual = (QuoteBar) parsed; AssertBarsAreEqual(expected.Bid, actual.Bid); AssertBarsAreEqual(expected.Ask, actual.Ask); Assert.AreEqual(expected.LastBidSize, actual.LastBidSize); Assert.AreEqual(expected.LastAskSize, actual.LastAskSize); } }
public void GenerateLine(LeanDataLineTestParameters parameters) { var line = LeanData.GenerateLine(parameters.Data, parameters.SecurityType, parameters.Resolution); Assert.AreEqual(parameters.ExpectedLine, line); }
public void GetSourceMatchesGenerateZipFilePath(LeanDataLineTestParameters parameters) { var source = parameters.Data.GetSource(parameters.Config, parameters.Data.Time.Date, false); var normalizedSourcePath = new FileInfo(source.Source).FullName; var zipFilePath = LeanData.GenerateZipFilePath(Constants.DataFolder, parameters.Data.Symbol, parameters.Data.Time.Date, parameters.Resolution, parameters.TickType); var normalizeZipFilePath = new FileInfo(zipFilePath).FullName; Assert.AreEqual(normalizeZipFilePath, normalizedSourcePath); }