Ejemplo n.º 1
0
 protected override IEnumerable <IGenIteration <T> > Run(GenParameters parameters)
 {
     while (true)
     {
         yield return(GenIterationFactory.Error <T>(parameters, parameters, _genName, _message));
     }
 }
Ejemplo n.º 2
0
        internal static IGen <T> SelectError <T>(this IGen <T> gen, Func <IGenErrorData, IGenErrorData> errorSelector)
        {
            IGenIteration <T> SelectError(IGenError <T> error)
            {
                var selectedErrorData = errorSelector(error);

                return(GenIterationFactory.Error <T>(
                           error.ReplayParameters,
                           error.NextParameters,
                           selectedErrorData.GenName,
                           selectedErrorData.Message));
            }

            GenIterationTransformation <T, T> transformation = (iteration) =>
            {
                return(iteration.Match(
                           onError: error => SelectError(error),
                           onInstance: instance => instance,
                           onDiscard: discard => discard));
            };

            return(gen.TransformIterations(transformation));
        }
Ejemplo n.º 3
0
 public static IGen <T> Cast <T>(this IGen gen) => new FunctionalGen <T>(parameters =>
                                                                         gen.Advanced
                                                                         .Run(parameters)
                                                                         .Select(iteration => iteration.Data.Match(
                                                                                     onInstance: instance => GenIterationFactory.Instance <T>(
                                                                                         iteration.ReplayParameters,
                                                                                         iteration.NextParameters,
                                                                                         instance.ExampleSpace.Cast <T>(),
                                                                                         instance.ExampleSpaceHistory),
                                                                                     onError: error => GenIterationFactory.Error <T>(
                                                                                         iteration.ReplayParameters,
                                                                                         iteration.NextParameters,
                                                                                         error.GenName,
                                                                                         error.Message),
                                                                                     onDiscard: discard => GenIterationFactory.Discard <T>(
                                                                                         iteration.ReplayParameters,
                                                                                         iteration.NextParameters,
                                                                                         discard.ExampleSpace))));