/// <summary> /// Initializes a new instance of the <see cref="TheoremFindingSettings"/> class. /// </summary> /// <param name="soughtTheoremTypes">The types of theorems that we're looking for.</param> /// <param name="tangentCirclesTheoremFinderSettings">he settings for <see cref="TangentCirclesTheoremFinder"/>. It can be null if this type is not sought.</param> /// <param name="lineTangentToCircleTheoremFinderSettings">The settings for <see cref="LineTangentToCircleTheoremFinder"/>. It can be null if this type is not sought.</param> public TheoremFindingSettings(IReadOnlyCollection <TheoremType> soughtTheoremTypes, TangentCirclesTheoremFinderSettings tangentCirclesTheoremFinderSettings, LineTangentToCircleTheoremFinderSettings lineTangentToCircleTheoremFinderSettings) { SoughtTheoremTypes = soughtTheoremTypes ?? throw new ArgumentNullException(nameof(soughtTheoremTypes)); TangentCirclesTheoremFinderSettings = tangentCirclesTheoremFinderSettings; LineTangentToCircleTheoremFinderSettings = lineTangentToCircleTheoremFinderSettings; // Ensure that tangent circles theorem finder settings are set if this theorem type is sought if (soughtTheoremTypes.Contains(TheoremType.TangentCircles) && tangentCirclesTheoremFinderSettings == null) { throw new TheoremFinderException("The tangent circles theorem finder must have its settings set as this theorem type is sought."); } // Ensure that line tangent to circle theorem finder settings are set if this theorem type is sought if (soughtTheoremTypes.Contains(TheoremType.LineTangentToCircle) && lineTangentToCircleTheoremFinderSettings == null) { throw new TheoremFinderException("The line tangent to circle theorem finder must have its settings set as this theorem type is sought."); } }
/// <summary> /// Initializes a new instance of the <see cref="LineTangentToCircleTheoremFinder"/> class. /// </summary> /// <param name="settings">The settings for the finder.</param> public LineTangentToCircleTheoremFinder(LineTangentToCircleTheoremFinderSettings settings) { _settings = settings ?? throw new ArgumentNullException(nameof(settings)); }