public static void AssertSensibleValue(ICompiledViewDefinition viewDefin) { Assert.NotEmpty(viewDefin.MarketDataRequirements); AssertSensibleValue(viewDefin.MarketDataRequirements); if (viewDefin.Portfolio != null) { AssertSensibleValue(viewDefin.Portfolio); } Assert.NotNull(viewDefin.ViewDefinition); AssertSensibleValue(viewDefin.ViewDefinition.CalculationConfigurationsByName); foreach (var kvp in viewDefin.ViewDefinition.CalculationConfigurationsByName) { Assert.Equal(kvp.Key, kvp.Value.Name); AssertSensibleValue(kvp.Value); } var l = viewDefin.ViewDefinition.CalculationConfigurationsByName.Keys; var r = viewDefin.CompiledCalculationConfigurations.Keys; Assert.True(new HashSet <string>(l).SetEquals(r)); foreach (var kvp in viewDefin.CompiledCalculationConfigurations) { Assert.Equal(kvp.Key, kvp.Value.Name); AssertSensibleValue(kvp.Value); } Assert.Equal(default(DateTimeOffset) == viewDefin.EarliestValidity, viewDefin.LatestValidity == default(DateTimeOffset)); }
private static int CountMaxExpectedValues(ICompiledViewDefinition compiledDefinition) { var specifics = compiledDefinition.ViewDefinition.CalculationConfigurationsByName.Sum(kvp => kvp.Value.SpecificRequirements.Count()); int rows = CountRows(compiledDefinition.Portfolio); var values = rows * compiledDefinition.ViewDefinition.CalculationConfigurationsByName.Sum(kvp => kvp.Value.PortfolioRequirementsBySecurityType.Sum(r => r.Value.Count)); return(specifics + values); }
public ComputationResultsTables(ISecuritySource remoteSecuritySource, ICompiledViewDefinition compiledViewDefinition) : base(remoteSecuritySource, compiledViewDefinition.Portfolio) { _viewDefinition = compiledViewDefinition.ViewDefinition; _compiledViewDefinition = compiledViewDefinition; _portfolioColumns = GetPortfolioColumns(_viewDefinition, _compiledViewDefinition).ToList(); _primitiveColumns = GetPrimitiveColumns(_viewDefinition, _compiledViewDefinition).ToList(); _primitiveRows = BuildPrimitiveRows().ToList(); }
public void ViewResultsMatchDefinition(ViewDefinition viewDefinition) { using (var remoteViewClient = Context.ViewProcessor.CreateClient()) { ICompiledViewDefinition compiledViewDefinition = null; IViewComputationResultModel viewComputationResultModel = null; var resultsReady = new ManualResetEvent(false); var listener = new EventViewResultListener(); listener.ViewDefinitionCompiled += delegate(object sender, ViewDefinitionCompiledArgs e) { compiledViewDefinition = e.CompiledViewDefinition; }; listener.CycleCompleted += delegate(object sender, CycleCompletedArgs e) { viewComputationResultModel = e.FullResult; resultsReady.Set(); }; remoteViewClient.SetResultListener(listener); remoteViewClient.AttachToViewProcess(viewDefinition.UniqueID, ExecutionOptions.RealTime); if (!resultsReady.WaitOne(TimeSpan.FromMinutes(2))) { throw new TimeoutException("Failed to get results for " + viewDefinition.Name + " client " + remoteViewClient.GetUniqueId()); } Assert.NotNull(compiledViewDefinition); foreach (var viewResultEntry in viewComputationResultModel.AllResults) { Assert.NotNull(viewResultEntry.ComputedValue.Value); AssertDefinitionContains(viewDefinition, viewResultEntry); } var countActualValues = viewComputationResultModel.AllResults.Count(); var countMaxExpectedValues = CountMaxExpectedValues(compiledViewDefinition); Console.Out.WriteLine("{0} {1} {2}", viewDefinition.Name, countActualValues, countMaxExpectedValues); Assert.InRange(countActualValues, 1, countMaxExpectedValues); } }
private static int CountMaxExpectedValues(ICompiledViewDefinition compiledDefinition) { var specifics = compiledDefinition.ViewDefinition.CalculationConfigurationsByName.Sum(kvp => kvp.Value.SpecificRequirements.Count()); int rows = CountRows(compiledDefinition.Portfolio); var values = rows * compiledDefinition.ViewDefinition.CalculationConfigurationsByName.Sum(kvp => kvp.Value.PortfolioRequirementsBySecurityType.Sum(r => r.Value.Count)); return specifics + values; }
private static IEnumerable <ColumnHeader> GetPortfolioColumns(ViewDefinition viewDefinition, ICompiledViewDefinition compiledViewDefinition) { var columns = new HashSet <ColumnHeader>(); foreach (var configuration in viewDefinition.CalculationConfigurationsByName) { Dictionary <ValueSpecification, HashSet <ValueRequirement> > specs = compiledViewDefinition.CompiledCalculationConfigurations[configuration.Key].TerminalOutputSpecifications; foreach (var secType in configuration.Value.PortfolioRequirementsBySecurityType) { foreach (var req in secType.Value) { if (Satisfies(specs, req)) { columns.Add(new ColumnHeader(configuration.Key, req.Item1, req.Item2)); } } } } return(columns); }
private static IEnumerable <ColumnHeader> GetPrimitiveColumns(ViewDefinition viewDefinition, ICompiledViewDefinition compiledViewDefinition) { var columns = new HashSet <ColumnHeader>(); foreach (var configuration in viewDefinition.CalculationConfigurationsByName) { Dictionary <ValueSpecification, HashSet <ValueRequirement> > specs = compiledViewDefinition.CompiledCalculationConfigurations[configuration.Key].TerminalOutputSpecifications; foreach (var req in configuration.Value.SpecificRequirements.Where(r => r.TargetSpecification.Type == ComputationTargetType.Primitive)) { //TODO less slow if (Satisfies(specs, Tuple.Create(req.ValueName, req.Constraints))) { columns.Add(new ColumnHeader(configuration.Key, req.ValueName, req.Constraints)); } } } return(columns); }
public ViewDefinitionCompiledArgs(ICompiledViewDefinition compiledViewDefinition) { _compiledViewDefinition = compiledViewDefinition; }
void IViewResultListener.ViewDefinitionCompiled(ICompiledViewDefinition compiledViewDefinition) { InvokeViewDefinitionCompiled(new ViewDefinitionCompiledArgs(compiledViewDefinition)); }
void IViewResultListener.ViewDefinitionCompiled(ICompiledViewDefinition compiledViewDefinition) { InvokeViewDefinitionCompiled(new ViewDefinitionCompiledArgs(compiledViewDefinition)); }
public ViewDefinitionCompiledArgs(ICompiledViewDefinition compiledViewDefinition) { _compiledViewDefinition = compiledViewDefinition; }