/// <summary> /// Writes all internal data to file. /// <para>Calling <see cref="IPopulationUpdateStrategy{TInstance,TResult}.DumpStatus"/>, terminating the program and then calling /// <see cref="IPopulationUpdateStrategy{TInstance,TResult}.UseStatusDump"/> needs to be equivalent to one long run.</para> /// </summary> public override void DumpStatus() { var strategyStatus = new CovarianceMatrixAdaptationStrategyStatus <PartialGenomeSearchPoint, TInstance>( this.OriginalIncumbent, this.CurrentEvaluationInstances, this.MostRecentSorting); strategyStatus.WriteToFile(this.StrategyStatusFilePath); this._cmaEsRunner.DumpStatus(this.ContinuousOptimizerStatusFilePath); }
public void OriginalIncumbentIsSetCorrectly() { var status = new CovarianceMatrixAdaptationStrategyStatus <PartialGenomeSearchPoint, TestInstance>( this._originalIncumbent, this._currentEvaluationInstances, this._mostRecentSorting); Assert.Equal( this._originalIncumbent, status.OriginalIncumbent); }
public override void ReadFromFileDeserializesCorrectly() { var status = new CovarianceMatrixAdaptationStrategyStatus <PartialGenomeSearchPoint, TestInstance>( this._originalIncumbent, this._currentEvaluationInstances, this._mostRecentSorting); status.WriteToFile(this.StatusFilePath); var deserializedStatus = StatusBase.ReadFromFile <CovarianceMatrixAdaptationStrategyStatus <PartialGenomeSearchPoint, TestInstance> >(this.StatusFilePath); // Use to string to not compare references. Assert.Equal( status.OriginalIncumbent.ToString(), deserializedStatus.OriginalIncumbent.ToString()); Assert.Equal( status.MostRecentSorting.Select(point => point.Genome.ToString()).ToArray(), deserializedStatus.MostRecentSorting.Select(point => point.Genome.ToString()).ToArray()); Assert.Equal( status.CurrentEvaluationInstances.Select(instance => instance.ToString()).ToArray(), deserializedStatus.CurrentEvaluationInstances.Select(instance => instance.ToString()).ToArray()); }