/// <inheritdoc /> public bool TryConvert(string[] value, out TunerDataRecord <TResult> result) { result = null; if (value.Length != TunerDataRecord <TResult> .OtherHeader.Length + this._genomeHeader.Length + this._numberOfResultColumns) { return(false); } var nodeId = value[0]; if (!int.TryParse(value[1], NumberStyles.Any, CultureInfo.InvariantCulture, out var generationId)) { return(false); } if (!int.TryParse(value[2], NumberStyles.Any, CultureInfo.InvariantCulture, out var tournamentId)) { return(false); } // Skip value[3] and value[5], since runID and configID are set automatically. var instanceId = value[4]; if (!double.TryParse(value[6], NumberStyles.Any, CultureInfo.InvariantCulture, out var grayBoxConfidence)) { return(false); } // Try to read genome double representation. GenomeDoubleRepresentation genome; try { var genomeDoubleValues = value[new Range( TunerDataRecord <TResult> .OtherHeader.Length, TunerDataRecord <TResult> .OtherHeader.Length + this._genomeHeader.Length)].Select(double.Parse).ToArray(); genome = (GenomeDoubleRepresentation)genomeDoubleValues; } catch { return(false); } // Try to read final result. var finalResultString = value[new Range( TunerDataRecord <TResult> .OtherHeader.Length + this._genomeHeader.Length, TunerDataRecord <TResult> .OtherHeader.Length + this._genomeHeader.Length + this._numberOfResultColumns)]; if (!this._targetAlgorithmFactory.TryToGetResultFromStringArray(finalResultString, out var finalResult)) { return(false); } result = new TunerDataRecord <TResult>( nodeId, generationId, tournamentId, instanceId, grayBoxConfidence, this._genomeHeader, genome, finalResult); return(true); }
/// <summary> /// Initializes a new instance of the <see cref="DataRecord{TResult}"/> class. /// </summary> /// <param name="tunerDataRecord">The tuner data record.</param> /// <param name="adapterDataRecord">The adapter data record.</param> public DataRecord(TunerDataRecord <TResult> tunerDataRecord, AdapterDataRecord <TResult> adapterDataRecord) { this.TunerDataRecord = tunerDataRecord; this.AdapterDataRecord = adapterDataRecord; this.IsCancelledByGrayBoxDuringGrayBoxSimulation = false; }