public double Evaluate(double organizationRatio, IDictionary <string, double> variables) { return(Methods.Lerp( organizationRatio * Methods.Clamp(this.OrganizationFactor.Evaluate(variables), 0, 1), Improvised.Evaluate(variables), Organized.Evaluate(variables) )); }
public SpaceEventGroup ForDay(int month, int day) { var Result = new SpaceEventGroup(); if (Data.Count > 0) { var Target = string.Format(MONTH_DAY_FORMAT, month, day); var PrevDay = ""; var NextDay = ""; if (Organized.ContainsKey(Target)) { Result.Current = Organized[Target]; Result.CurrentCount = Result.Current.Count(); } if (PreviousNext.ContainsKey(Target)) { PrevDay = PreviousNext[Target].Previous; NextDay = PreviousNext[Target].Next; } else { var CheckDate = new DateTime(DateTime.Now.Year, month, day); var NewTarget = ""; while (!PreviousNext.ContainsKey(NewTarget)) { CheckDate = CheckDate.AddDays(1); NewTarget = string.Format(MONTH_DAY_FORMAT, CheckDate.Month, CheckDate.Day); } PrevDay = PreviousNext[NewTarget].Previous; if (Organized.ContainsKey(NewTarget)) { NextDay = NewTarget; } else { NextDay = PreviousNext[NewTarget].Next; } PreviousNext.Add(Target, new PrevNext() { Previous = PrevDay, Next = NextDay }); } Result.Previous = Organized[PrevDay].Last(); Result.PreviousCount = Organized[PrevDay].Count(); Result.Next = Organized[NextDay].First(); Result.NextCount = Organized[NextDay].Count(); } return(Result); }