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; }
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}"); }
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; }