Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 /// <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;
 }