Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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;
 }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 public ViewDefinitionCompiledArgs(ICompiledViewDefinition compiledViewDefinition)
 {
     _compiledViewDefinition = compiledViewDefinition;
 }
Ejemplo n.º 9
0
 void IViewResultListener.ViewDefinitionCompiled(ICompiledViewDefinition compiledViewDefinition)
 {
     InvokeViewDefinitionCompiled(new ViewDefinitionCompiledArgs(compiledViewDefinition));
 }
Ejemplo n.º 10
0
 void IViewResultListener.ViewDefinitionCompiled(ICompiledViewDefinition compiledViewDefinition)
 {
     InvokeViewDefinitionCompiled(new ViewDefinitionCompiledArgs(compiledViewDefinition));
 }
Ejemplo n.º 11
0
 public ViewDefinitionCompiledArgs(ICompiledViewDefinition compiledViewDefinition)
 {
     _compiledViewDefinition = compiledViewDefinition;
 }