示例#1
0
 public PokemonProvider(
     IProbabilityUtility probabilityUtility,
     IPokemonRepository pokemonRepository,
     IOptions <PersistentConfig> pokemonGeneratorConfig)
 {
     _probabilityUtility = probabilityUtility;
     _pokemonRepository  = pokemonRepository;
     _config             = pokemonGeneratorConfig;
 }
 public PokemonMoveProvider(
     IPokemonRepository pokemonRepository,
     IProbabilityUtility probabilityUtility,
     IOptions <PersistentConfig> config,
     Random random)
 {
     _pokemonRepository  = pokemonRepository;
     _probabilityUtility = probabilityUtility;
     _random             = random;
     _config             = config;
 }
示例#3
0
        public void GaussianRandomWithConfigTest(int low, int high, double meanConfig, double stdDeviationConfig)
        {
            config.Mean = meanConfig;
            config.StandardDeviation = stdDeviationConfig;
            probabilityUtility       = new ProbabilityUtility(random, config);

            var result             = Enumerable.Range(0, iterations).Select(i => probabilityUtility.GaussianRandom(low, high));
            var resultMean         = result.Average();
            var resultStdDeviation = Math.Sqrt(result.Select(i => Math.Pow(i - resultMean, 2D)).Average());

            var mean  = low + (high - low) * meanConfig;
            var stdev = (high - low) * stdDeviationConfig;

            // Assert
            Assert.True(Math.Abs(resultMean - mean) / mean <= stdDeviation, $"Mean Expected: {mean}, Actual: {resultMean}");
            Assert.True(Math.Abs(resultStdDeviation - stdev) / stdev <= stdDeviation, $"Standard Deviation Expected: {stdev}, Actual: {resultStdDeviation}");
        }
示例#4
0
 public ProbabilityUtilityTests()
 {
     config             = new GeneratorConfig();
     random             = new Random("The cake is a lie".GetHashCode());
     probabilityUtility = new ProbabilityUtility(random, config);
 }
 public PokemonStatProvider(IPokemonRepository pokemonRepository, IProbabilityUtility probabilityUtility)
 {
     _pokemonRepository  = pokemonRepository;
     _probabilityUtility = probabilityUtility;
 }