public IGivenThen <TArgsBuilder, TArgsBuilder> HasValue <TParam>(TParam value, Func <string, TParam>?parser = null) { TArgsBuilder?result = default; return(new GivenThenBuilder <TArgsBuilder, TArgsBuilder>( ThenExpressionBuilt, argsBuilder, () => result ?? throw new Exception("Resulting builder not defined!"))); void ThenExpressionBuilt(IParsable parsable) { result = stepWrapper(new GivenParameterStep( previousStep, GivenParameter.HasValue(name, typeof(TParam), value !, GetParser()), parsable as IParsableFromState ?? throw new Exception("TODO"))); } Func <string, object>?GetParser() { if (parser == null) { return(null); } return(s => parser !(s) !); } }
/// <summary> /// Method for calculating the default values of derived parameters. /// </summary> public void CalculateDefaults() { if (!Delay.Given) { Delay = new GivenParameter <double>(NormalizedLength / Frequency, false); } Admittance = 1.0 / Impedance; }
public IGivenThen <TArgsBuilder, TArgsBuilder> Exists() { TArgsBuilder?result = default; return(new GivenThenBuilder <TArgsBuilder, TArgsBuilder>( ThenExpressionBuilt, argsBuilder, () => result ?? throw new Exception("Resulting builder not defined!"))); void ThenExpressionBuilt(IParsable parsable) { result = stepWrapper(new GivenParameterStep( previousStep, GivenParameter.Exists(name), parsable as IParsableFromState ?? throw new Exception("TODO"))); } }
public GivenParameterStep(Step previous, GivenParameter description, IParsableFromState thenStep) : base(previous) { Description = description; ThenStep = thenStep; }