/// <summary>
 /// Returns true of the trigger criteria are met.
 /// </summary>
 public bool TestTrigger(NeatAlgorithmStats neatStats, PhasedSearchStats phasedSearchStats)
 {
     return (DateTime.Now - phasedSearchStats._lastTransitionClockTime) > _timespan;
 }
 /// <summary>
 /// Returns true of the trigger criteria are met.
 /// </summary>
 public bool TestTrigger(NeatAlgorithmStats neatStats, PhasedSearchStats phasedSearchStats)
 {
     return neatStats._meanComplexity > (phasedSearchStats._lastComplexityBase + _relativeCeiling);
 }
 /// <summary>
 /// Returns true of the trigger criteria are met.
 /// </summary>
 public bool TestTrigger(NeatAlgorithmStats neatStats, PhasedSearchStats phasedSearchStats)
 {
     return neatStats._meanComplexity > _ceiling;
 }
 /// <summary>
 /// Returns true of the trigger criteria are met.
 /// </summary>
 public bool TestTrigger(NeatAlgorithmStats neatStats, PhasedSearchStats phasedSearchStats)
 {
     return (neatStats._generation - phasedSearchStats._currentPhaseFitnessMaxGeneration) > _generationStallLimit;
 }
 /// <summary>
 /// Returns true of the trigger criteria are met.
 /// </summary>
 public bool TestTrigger(NeatAlgorithmStats neatStats, PhasedSearchStats phasedSearchStats)
 {
     return (DateTime.Now - phasedSearchStats._currentPhaseFitnessMaxClockTime) > _clockTimeStallLimit;
 }
 /// <summary>
 /// Returns true of the trigger criteria are met.
 /// </summary>
 public bool TestTrigger(NeatAlgorithmStats neatStats, PhasedSearchStats phasedSearchStats)
 {
     return (phasedSearchStats._currentPhaseComplexityMinGeneration - neatStats._generation) > _generationStallLimit;
 }
 /// <summary>
 /// Returns true of the trigger criteria are met.
 /// </summary>
 public bool TestTrigger(NeatAlgorithmStats neatStats, PhasedSearchStats phasedSearchStats)
 {
     return (neatStats._generation - phasedSearchStats._lastTransitionGeneration) > _generations;
 }