Example #1
0
 Context StringDomainContext(bool useDefaults, int seed)
 {
     return(c => c
            .Given("string base domain", x => TestDataDomain = configurator => configurator.UseDefaults(useDefaults).UseRandom(new DefaultRandom(seed)))
            .Given("string evolutionary domain", x => EvolutionaryDomain = configurator => configurator.AddRule(new StringMarryRule()))
            .Given(DataGeneratorContext())
            .Given(StringInitialDataContext()));
 }
Example #2
0
 Context PersonDomainContext(int seed = 0, bool useDefaults = true)
 {
     return(c => c
            .Given("person test domain", x => TestDataDomain = configurator => configurator
                                                               //
                                                               .UseDefaults(useDefaults).UseRandom(new DefaultRandom(seed))
                                                               //
                                                               .For <Gender> ().AddProvider(context => (Gender)(context.Random.Next(0, 2))))
            .Given("person evolution domain", x => EvolutionaryDomain = configurator => configurator
                                                                        //
                                                                        .AddGlobalRule(new WorldRule())
                                                                        .AddRule(new ProcreationRule()).AddRule(new AgingRule()))
            .Given(DataGeneratorContext())
            .Given(PersonInitialDataContext()));
 }
Example #3
0
        /// <summary>
        /// Creates an evolutionary data generator for the given domain
        /// </summary>
        /// <param name="testDataDomainConfiguration">the domain, containing all relevant imformation for the test data generation</param>
        /// <param name="evolutionaryDomainConfiguration">the domain, containing all relevant information for the evolutionary generation</param>
        /// <returns>the final test data generator that can be used for data generation</returns>
        public static RuleBasedDataGenerator Create(TestDataDomainConfiguration testDataDomainConfiguration, [CanBeNull] EvolutionaryDomainConfiguration evolutionaryDomainConfiguration)
        {
            var testDataGenerator = TestDataGeneratorFactory.Create(testDataDomainConfiguration);

            var evolutionaryDomainConfigurator = new RuleBasedDataGeneratorConfigurator();

            if (evolutionaryDomainConfiguration != null)
            {
                evolutionaryDomainConfigurator = (RuleBasedDataGeneratorConfigurator)evolutionaryDomainConfiguration(evolutionaryDomainConfigurator);
            }

            var ruleSet = evolutionaryDomainConfigurator.Build();

            return(new RuleBasedDataGenerator(testDataGenerator, ruleSet));
        }