public Block Mutate(float noice) { Block mutation = new Block(); mutation.MountainEntities = new List <Mountain>(); foreach (Mountain mountain in this.MountainEntities) { mutation.MountainEntities.Add(mountain.Mutate(noice)); } EvalBlock eval = new EvalBlock(); eval.BlockGrade(mutation); return(mutation); }
/// <summary> /// /// </summary> /// <param name="context"></param> private void EvalEmpty(EvalBlock b) { var evalMatch = Evaluator.Eval(null); if (b.Context.IsTestRun) { b.Context.Log($"Condition: Eval: {evalMatch}, Query Returned No Series( reduced to null / no value )"); } if (evalMatch) { b.EvalMatchCount++; b.Matches.Add(new EvalMatch("NoData", null)); } }
/// <summary> /// /// </summary> /// <param name="context"></param> /// <param name="series"></param> private void Eval(EvalBlock b, TimeSeries series) { var reducedValue = Reducer.Reduce(series); var evalMatch = Evaluator.Eval(reducedValue); if (!reducedValue.HasValue) { b.EmptySerieCount++; } if (b.Context.IsTestRun) { b.Context.Log($"Condition [{Index}], Eval: {evalMatch}, Metric: {series.Name}, Value: {reducedValue}"); } if (evalMatch) { b.Matches.Add(new EvalMatch(series.Name, reducedValue, series.Tags)); b.EvalMatchCount++; } }
/// <summary> /// /// </summary> /// <param name="context"></param> /// <param name="seriesList"></param> private Result Eval(EvaluationContext context, TimeSeriesList seriesList) { context.Log($"Condition [{Index}]: Query Result", seriesList); var b = EvalBlock.Create(context); seriesList.ForEach(s => Eval(b, s)); if (0 == seriesList.Count) { EvalEmpty(b); } return(new Result() { Firing = b.EvalMatchCount > 0, NoDataFound = (b.EmptySerieCount == seriesList.Count), Operator = Operator, Matches = b.Matches }); }
private void GenerateMutateAndRelease() { Block bestBlock = null; //Create Blocks for (int i = 0; i < 12; i++) { EvalBlock eval = new EvalBlock(); Block tmp = new Block(); eval.BlockGrade(tmp); TemporalBlockQueue.Add(tmp); } // Debug.Log("Initial > : " + _PrintQueue()); for (int i = 0; i < 5; i++) { _ReduceAndMutate(); // Debug.Log("Mutation #" + (i + 1) + ": " + _PrintQueue()); } bestBlock = TemporalBlockQueue[TemporalBlockQueue.Count - 1]; Debug.Log("[MUTATOR] ===================== ADDED TO QUEUE BLOCK G: " + bestBlock.grade); Mutate.BlockQueue.Enqueue(bestBlock); }