/// <summary> /// Collects the result and updates <see cref="Max"/>, <see cref="Min"/> dictionaries. /// </summary> /// <param name="simulation">Simulation of the result.</param> /// <param name="result">Result value.</param> public void Collect(Simulation simulation, double result) { if (simulation == null) { throw new ArgumentNullException(nameof(simulation)); } lock (_locker) { if (Min.ContainsKey(simulation)) { Min[simulation] = Math.Min(Min[simulation], result); } else { Min[simulation] = result; } if (Max.ContainsKey(simulation)) { Max[simulation] = Math.Max(Max[simulation], result); } else { Max[simulation] = result; } } }
/// <summary> /// Determines whether this instance can generate the specified parameter. /// </summary> /// <param name="parameter">The parameter.</param> /// <returns> /// <c>true</c> if this instance can generate the specified parameter; otherwise, <c>false</c>. /// </returns> public bool CanGenerate(ParameterInfo parameter) { return(!parameter.HasDefaultValue && parameter.GetCustomAttribute <ValidationAttribute>() == null && (Max?.ContainsKey(parameter.ParameterType) ?? false)); }