private static IMutate Decide(MutateEnum option, GASettings settings)
        {
            switch (option)
            {
            case MutateEnum.Swap:
                return(new SwapMutation(settings, RandomSingleton.Instance));

            case MutateEnum.Inversion:
                return(new InversionMutation(settings, RandomSingleton.Instance));

            case MutateEnum.Insertion:
                return(new InsertionMutation(settings, RandomSingleton.Instance));

            case MutateEnum.Displacement:
                return(new DisplacementMutation(settings, RandomSingleton.Instance));
            }
            throw new Exception("No mutate passed");
        }
 public Result(
     TipoErro TipoErro,
     int Indice,
     string FileName,
     int QtdEntregadores,
     MutateEnum Mutation,
     CrossoverEnum CrossoverEnum,
     double Fitness
     )
 {
     this.TipoErro        = TipoErro;
     this.Indice          = Indice;
     this.FileName        = new FileInfo(FileName).Name;
     this.QtdEntregadores = QtdEntregadores;
     this.Mutation        = Mutation;
     this.CrossoverEnum   = CrossoverEnum;
     this.Fitness         = Fitness;
 }
 public static IMutate GetImplementation(MutateEnum option, GASettings settings) => Decide(option, settings);