protected void ExecuteAllReaders(TimeArg <I> arg) { foreach (var reader in Readers) { reader(arg); } }
public override void EvaluateInternal(H holder, MemberInfo groupKey) { // вычисляем переменную из котрой следует получить значения CalculatedVariable <H, T, I> basedVar = (CalculatedVariable <H, T, I>)DependsOn.Single(); basedVar.Evaluate(holder, groupKey, LastMoniker); // для каждого периода времени вычисляем значение переменной foreach (var tp in Period.Periods.Select((t, i) => new TimeArg <I>(t, i, groupKey, Period.Name, this.Name))) { I next = Period.Periods.FirstOrDefault(p => Operator.GreaterThan(p, tp.T)); var subPeriod = basedVar.Period.Between(tp.T, next); List <T> result = Activator.CreateInstance <List <T> >(); Int32 c = 0; foreach (I s in subPeriod) { var ta = new TimeArg <I>(s, c++, groupKey, basedVar.Period.Name, basedVar.Name); result.Add((T)basedVar.Results[ta]); } Results.Add(tp, result); // если требуется вернуть значение переменной, то записываем результат в свойство // holder, это свойство будет содержить список значений всех переменных на момент времени t if (Readers.Any()) { ApplyValueForHolder(holder, tp); ExecuteAllReaders(tp); } } }
public void Should_Stringify_WithFormat(TimeArg arg, string format, string expectedString) { var stringified = arg.ToString(new Dictionary <string, string> { { "format", format } }); Assert.Equal(expectedString, stringified); }
public void Should_Stringify_Dates_WithCulture(TimeArg arg, string culture, string expectedString) { var stringified = arg.ToString(new Dictionary <string, string> { { "culture", culture } }); Assert.Equal(expectedString, stringified); }
public void Should_Stringify_Times_WithFormatAndCulture(TimeArg arg, string format, string culture, string expectedString) { var stringified = arg.ToString(new Dictionary <string, string> { { "format", format }, { "culture", culture } }); Assert.Equal(expectedString, stringified); }
public override void ApplyValueForHolder(H holder, TimeArg <I> tp) { T result; if (this.Period is ConstantPeriod <I> ) { result = Results.Values.Single(); } else { result = Results[tp]; } CompiledPropertySetter(holder, result); }
public virtual void ApplyValueForHolder(H holder, TimeArg <I> tp) { }
public void Should_Stringify_Default(TimeArg arg, string expectedString) { var stringified = arg.ToString(null); Assert.Equal(expectedString, stringified); }
public void Should_Stringify_Default(TimeArg arg, string expectedString) { var stringified = arg.ToString(null); stringified.Should().Be(expectedString); }