internal QueryGenerationContext(QueryAggregator queryAggregator, VariableAggregator variableAggregator,
                                 IMemberNameResolver memberResolver)
 {
     QueryAggregator = queryAggregator;
     Variables       = variableAggregator;
     MemberResolver  = memberResolver;
 }
Пример #2
0
        private void AddVariable()
        {
            if (!IsValid())
            {
                throw new EquationParsingException(Resources.IsNotEquationException);
            }

            var rank = int.Parse(
                myRankSign >= 0
          ? myRankBuilder.ToString()
          : myRankBuilder.Insert(0, EquationConstants.MinusSign).ToString());

            var key = VariableDescriptorNameBuilder.GetFullName(myVariableName, rank);

            var descriptor = VariableAggregator.GetOrCreateValue(key, () => new VariableDescriptor {
                Name = myVariableName, Rank = rank
            });
            var variableCoefficient = AddCoefficient(myCoefficient);

            variableCoefficient.Type = rank == 0
        ? CoefficientType.Constant
        : CoefficientType.VariableCoefficient;

            descriptor.Coefficients.Add(variableCoefficient);

            myRankBuilder.Clear();
        }
        private void AddVariable()
        {
            const int rank = 1;
            var       key  = VariableDescriptorNameBuilder.GetFullName(myVariableName, rank);

            var descriptor = VariableAggregator.GetOrCreateValue(key, () => new VariableDescriptor {
                Name = myVariableName, Rank = rank
            });
            var variableCoefficient = AddCoefficient(myCoefficient);

            variableCoefficient.Type = CoefficientType.VariableCoefficient;

            descriptor.Coefficients.Add(variableCoefficient);
        }
Пример #4
0
        private void AddVariable()
        {
            if (!IsValid())
            {
                throw new EquationParsingException(Resources.IsNotEquationException);
            }

            const int rank = 1;
            var       name = string.Concat(myVariableNameSet);
            var       key  = VariableDescriptorNameBuilder.GetFullName(name, rank);

            var descriptor = VariableAggregator.GetOrCreateValue(key, () => new VariableDescriptor {
                Name = name, Rank = rank
            });
            var variableCoefficient = AddCoefficient(myCoefficient);

            variableCoefficient.Type = CoefficientType.VariableCoefficient;

            descriptor.Coefficients.Add(variableCoefficient);

            myVariableNameSet.Clear();
        }
Пример #5
0
        private void AddVariable()
        {
            if (!IsValid())
            {
                throw new EquationParsingException(Resources.IsNotEquationException);
            }

            // special case when P(any)^0 is written with (any)^0 ommitted
            const int rank = 0;
            var       name = string.Empty;
            var       key  = VariableDescriptorNameBuilder.GetFullName(name, rank);

            var descriptor = VariableAggregator.GetOrCreateValue(key, () => new VariableDescriptor {
                Name = name, Rank = rank
            });
            var variableCoefficient = AddCoefficient(GetCoefficient());

            variableCoefficient.Type = CoefficientType.Constant;

            descriptor.Coefficients.Add(variableCoefficient);

            myCoefficientBuilder.Clear();
        }
Пример #6
0
 internal override bool IsTerminalState()
 {
     return(VariableAggregator.Any() && // equation has atleast one variable
            mySign == 0 && // equation doesn`t end up with sign symbol
            base.IsTerminalState());
 }