public void ReadsFineFundamental(FineFundamentalTestParameters parameters) { var stopwatch = Stopwatch.StartNew(); var rows = new List <FineFundamental>(); var config = new SubscriptionDataConfig(typeof(FineFundamental), parameters.Symbol, Resolution.Daily, TimeZones.NewYork, TimeZones.NewYork, false, false, false, false, TickType.Trade, false); var security = new Security( SecurityExchangeHours.AlwaysOpen(TimeZones.NewYork), config, new Cash(Currencies.USD, 0, 1), SymbolProperties.GetDefault(Currencies.USD), ErrorCurrencyConverter.Instance, RegisteredSecurityDataTypesProvider.Null, new SecurityCache() ); var request = new SubscriptionRequest(false, null, security, config, parameters.StartDate, parameters.EndDate); var fileProvider = new DefaultDataProvider(); var factory = new FineFundamentalSubscriptionEnumeratorFactory(parameters.LiveMode); var enumerator = factory.CreateEnumerator(request, fileProvider); while (enumerator.MoveNext()) { var current = enumerator.Current as FineFundamental; rows.Add(current); } stopwatch.Stop(); Log.Trace("Total rows: {0}, elapsed time: {1}", rows.Count, stopwatch.Elapsed); Assert.AreEqual(parameters.RowCount, rows.Count); if (parameters.RowCount != 1) { return; } var row = rows[0]; Assert.AreEqual(parameters.CompanyShortName, row.CompanyReference.ShortName); Assert.AreEqual(parameters.Symbol, row.Symbol); Assert.IsTrue(row.CompanyReference.PrimarySymbol == parameters.Symbol.Value || row.CompanyReference.PrimarySymbol == null); Assert.IsTrue(row.SecurityReference.SecuritySymbol == parameters.Symbol.Value || row.SecurityReference.SecuritySymbol == null); Assert.AreEqual(parameters.Ebitda3M, row.FinancialStatements.IncomeStatement.EBITDA.ThreeMonths); Assert.AreEqual(parameters.Ebitda12M, row.FinancialStatements.IncomeStatement.EBITDA.TwelveMonths); Assert.AreEqual(parameters.Ebitda12M, (decimal)row.FinancialStatements.IncomeStatement.EBITDA); Assert.AreEqual(parameters.CostOfRevenue3M, row.FinancialStatements.IncomeStatement.CostOfRevenue.ThreeMonths); Assert.AreEqual(parameters.CostOfRevenue12M, row.FinancialStatements.IncomeStatement.CostOfRevenue.TwelveMonths); Assert.AreEqual(parameters.CostOfRevenue12M, (decimal)row.FinancialStatements.IncomeStatement.CostOfRevenue); Assert.AreEqual(parameters.EquityPerShareGrowth1Y, row.EarningRatios.EquityPerShareGrowth.OneYear); Assert.AreEqual(parameters.EquityPerShareGrowth1Y, (decimal)row.EarningRatios.EquityPerShareGrowth); Assert.AreEqual(parameters.PeRatio, row.ValuationRatios.PERatio); if (!parameters.FinancialHealthGrade.IsNullOrEmpty()) { Assert.AreEqual(parameters.FinancialHealthGrade, row.AssetClassification.FinancialHealthGrade); } enumerator.Dispose(); }
public void ReadsFineFundamental(FineFundamentalTestParameters parameters) { var stopwatch = Stopwatch.StartNew(); var rows = new List <FineFundamental>(); var config = new SubscriptionDataConfig(typeof(FineFundamental), parameters.Symbol, Resolution.Daily, TimeZones.NewYork, TimeZones.NewYork, false, false, false, false, TickType.Trade, false); var security = new Security(SecurityExchangeHours.AlwaysOpen(TimeZones.NewYork), config, new Cash(CashBook.AccountCurrency, 0, 1), SymbolProperties.GetDefault(CashBook.AccountCurrency)); var request = new SubscriptionRequest(false, null, security, config, parameters.StartDate, parameters.EndDate); var fileProvider = new DefaultDataFileProvider(); var factory = new FineFundamentalSubscriptionEnumeratorFactory(); var enumerator = factory.CreateEnumerator(request, fileProvider); while (enumerator.MoveNext()) { var current = enumerator.Current as FineFundamental; rows.Add(current); } stopwatch.Stop(); Console.WriteLine("Total rows: {0}, elapsed time: {1}", rows.Count, stopwatch.Elapsed); Assert.AreEqual(parameters.RowCount, rows.Count); if (parameters.RowCount != 1) { return; } var row = rows[0]; Assert.AreEqual(parameters.CompanyShortName, row.CompanyReference.ShortName); Assert.AreEqual(parameters.Symbol, row.Symbol); Assert.AreEqual(parameters.Symbol != Symbol.Empty ? parameters.Symbol.Value : null, row.CompanyReference.PrimarySymbol); Assert.AreEqual(parameters.Symbol != Symbol.Empty ? parameters.Symbol.Value : null, row.SecurityReference.SecuritySymbol); Assert.AreEqual(parameters.Ebitda3M, row.FinancialStatements.IncomeStatement.EBITDA.ThreeMonths); Assert.AreEqual(parameters.Ebitda12M, row.FinancialStatements.IncomeStatement.EBITDA.TwelveMonths); Assert.AreEqual(parameters.Ebitda12M, row.FinancialStatements.IncomeStatement.EBITDA); Assert.AreEqual(parameters.CostOfRevenue3M, row.FinancialStatements.IncomeStatement.CostOfRevenue.ThreeMonths); Assert.AreEqual(parameters.CostOfRevenue12M, row.FinancialStatements.IncomeStatement.CostOfRevenue.TwelveMonths); Assert.AreEqual(parameters.CostOfRevenue12M, row.FinancialStatements.IncomeStatement.CostOfRevenue); Assert.AreEqual(parameters.EquityPerShareGrowth1Y, row.EarningRatios.EquityPerShareGrowth.OneYear); Assert.AreEqual(parameters.EquityPerShareGrowth1Y, row.EarningRatios.EquityPerShareGrowth); Assert.AreEqual(parameters.PeRatio, row.ValuationRatios.PERatio); }
public void ReadsFineFundamental(FineFundamentalTestParameters parameters) { var stopwatch = Stopwatch.StartNew(); var rows = new List<FineFundamental>(); var config = new SubscriptionDataConfig(typeof(FineFundamental), parameters.Symbol, Resolution.Daily, TimeZones.NewYork, TimeZones.NewYork, false, false, false, false, TickType.Trade, false); var security = new Security(SecurityExchangeHours.AlwaysOpen(TimeZones.NewYork), config, new Cash(CashBook.AccountCurrency, 0, 1), SymbolProperties.GetDefault(CashBook.AccountCurrency)); var request = new SubscriptionRequest(false, null, security, config, parameters.StartDate, parameters.EndDate); var fileProvider = new DefaultDataFileProvider(); var factory = new FineFundamentalSubscriptionEnumeratorFactory(); var enumerator = factory.CreateEnumerator(request, fileProvider); while (enumerator.MoveNext()) { var current = enumerator.Current as FineFundamental; rows.Add(current); } stopwatch.Stop(); Console.WriteLine("Total rows: {0}, elapsed time: {1}", rows.Count, stopwatch.Elapsed); Assert.AreEqual(parameters.RowCount, rows.Count); if (parameters.RowCount != 1) return; var row = rows[0]; Assert.AreEqual(parameters.CompanyShortName, row.CompanyReference.ShortName); Assert.AreEqual(parameters.Symbol, row.Symbol); Assert.AreEqual(parameters.Symbol != Symbol.Empty ? parameters.Symbol.Value : null, row.CompanyReference.PrimarySymbol); Assert.AreEqual(parameters.Symbol != Symbol.Empty ? parameters.Symbol.Value : null, row.SecurityReference.SecuritySymbol); Assert.AreEqual(parameters.Ebitda3M, row.FinancialStatements.IncomeStatement.EBITDA.ThreeMonths); Assert.AreEqual(parameters.Ebitda12M, row.FinancialStatements.IncomeStatement.EBITDA.TwelveMonths); Assert.AreEqual(parameters.Ebitda12M, row.FinancialStatements.IncomeStatement.EBITDA); Assert.AreEqual(parameters.CostOfRevenue3M, row.FinancialStatements.IncomeStatement.CostOfRevenue.ThreeMonths); Assert.AreEqual(parameters.CostOfRevenue12M, row.FinancialStatements.IncomeStatement.CostOfRevenue.TwelveMonths); Assert.AreEqual(parameters.CostOfRevenue12M, row.FinancialStatements.IncomeStatement.CostOfRevenue); Assert.AreEqual(parameters.EquityPerShareGrowth1Y, row.EarningRatios.EquityPerShareGrowth.OneYear); Assert.AreEqual(parameters.EquityPerShareGrowth1Y, row.EarningRatios.EquityPerShareGrowth); Assert.AreEqual(parameters.PeRatio, row.ValuationRatios.PERatio); }