// // CONSTRUCTORS public T_Value(bool isPrimitive) : base( isPrimitive, typeof(T_Value), "T_Value", "t", "s" ) { T_Table = FetchT_Table(); if (isPrimitive) { return; } // Associated Data SegmentsTitles.Add("From Sample"); SegmentsTitles.Add("From DataSet"); Expression[] secondSegment = new Expression[4]; secondSegment[0] = new PopulationMean(); secondSegment[1] = new Sample_Mean(false); secondSegment[2] = new Sample_SD(false); secondSegment[3] = new Sample_Size(false); Expression[] thirdSegment = new Expression[2]; thirdSegment[0] = new PopulationMean(); thirdSegment[1] = new DataSet(); SubExpressions.Add(secondSegment); SubExpressions.Add(thirdSegment); }
// Binomial Randon Variable public Binomial_RV() : base() { Expression[] firstSegment = new Expression[3]; firstSegment[0] = new Sample_Size(true); firstSegment[1] = new Probability(true); firstSegment[2] = new Specific_Number(); SubExpressions.Add(firstSegment); }
protected override SObject DoFunction() { if (argsExpressions == null) { argsExpressions = SubExpressions.FirstOrDefault()?.SubExpressions; argsExpressions ??= new List <Expression>(); if (argsExpressions.Count != Function.ArgsCount) { throw new ScriptRuntimeException(Token, $"Complex function needed {Function.ArgsCount} arguments!"); } } Func <SObject>[] argsFunc = argsExpressions .Select(f => new Func <SObject>(() => f.GetResult())) .ToArray(); SObject funcResult = Function.GetResult(argsFunc); Expression bodyExpression = SubExpressions .Skip(1) .First(); if (funcResult?.BoolValue == true) { bodyExpression.GetResult(); } while (Function.RetryFunction()) { funcResult = Function.GetResult(argsFunc); if (funcResult?.BoolValue == true) { bodyExpression.GetResult(); } else { break; } } return(funcResult); }
public Sample_Size(bool isPrimitive) : base( isPrimitive, typeof(Sample_Size), "Sample Size", "n", "s" ) { if (isPrimitive) { return; } SegmentsTitles.Add("From DataSet"); Expression[] secondSegment = new Expression[1]; secondSegment[0] = new DataSet(); SubExpressions.Add(secondSegment); }
// Probability Mass Function public pmf(bool isPrimitive) : base( isPrimitive, typeof(pmf), "pmf", "P(X=x)", "s" ) { if (isPrimitive) { return; } SegmentsTitles.Add("From Binomial"); // Segments Expression[] secondSegment = new Expression[1]; secondSegment[0] = new Binomial_RV(); SubExpressions.Add(secondSegment); }
public Probability(bool isPrimitive) : base( isPrimitive, typeof(Probability), "Probability", "p", "s" ) { if (isPrimitive) { return; } SegmentsTitles.Add("From T_Value"); Expression[] secondSegment = new Expression[1]; secondSegment[0] = new T_Value(false); SubExpressions.Add(secondSegment); }
protected override SObject DoFunction() { if (argsExpressions == null) { argsExpressions = SubExpressions.FirstOrDefault()?.SubExpressions; argsExpressions ??= new List <Expression>(); if (argsExpressions.Count != Function.ArgsCount) { throw new ScriptRuntimeException(Token, $"Function <{Token}> need {Function.ArgsCount} argument(s)!"); } } SObject[] args = new SObject[argsExpressions.Count]; for (int i = 0; i < argsExpressions.Count; i++) { args[i] = argsExpressions[i].GetResult(); } return(Function.GetResult(args)); }
protected override SObject DoFunction() { SObject result = vars[Token.TokenString]; if (!argumentsChecked) { if (SubExpressions?.FirstOrDefault() as ArgumentsExpression != null) { arguments = SubExpressions[0] as ArgumentsExpression; } argumentsChecked = true; } if (arguments != null) { string ident = arguments.GetResult()?.StringValue; return(result.Vars[ident]); } else { return(result); } }
public override bool Test(TTarget target) { return(SubExpressions.All(subExpression => subExpression.Test(target))); }
/// <summary> /// Добавить дочерние выражения из перечисления /// </summary> /// <param name="expressions"></param> public void AddExpressions(IEnumerable <Expression> expressions) { expressions.ThrowIfNull("Expression can't be null"); SubExpressions.AddRange(expressions); }
/// <summary> /// Добавить дочерние выражение /// </summary> /// <param name="expression"></param> public void AddExpression(Expression expression) { expression.ThrowIfNull("Expression can't be null"); SubExpressions.Add(expression); }
public override string ToString() { return(string.Join("", SubExpressions.Select(x => x.ToString()).ToList())); }
public override bool Test(TTarget target) { return(SubExpressions.Count(subExpression => subExpression.Test(target)) == 1); }
public override string ToString() { return("(" + string.Join("|", SubExpressions.Select(x => x.ToString()).ToList()) + ")"); }