public void GetRandomWeightedItem_WithCollection_ReturnsCorrectItem(int randomNumber, int expectedItem) { var mockRandomNumberGenerator = new Mock <IRandomNumberGenerator>(); mockRandomNumberGenerator.Setup(x => x.GetRandomInteger(6)).Returns(randomNumber); var randomItemSelector = new RandomItemSelector(mockRandomNumberGenerator.Object); var items = new WeightedItem[] { new WeightedItem { RandomizationWeight = 1 }, new WeightedItem { RandomizationWeight = 2 }, new WeightedItem { RandomizationWeight = 3 }, }; var item = randomItemSelector.GetRandomWeightedItem <WeightedItem>(items); Assert.AreEqual(items[expectedItem], item); mockRandomNumberGenerator.Verify(x => x.GetRandomInteger(6), Times.Once); mockRandomNumberGenerator.VerifyNoOtherCalls(); }
private CharacterNameGenerator CreateCharacterNameGenerator(AncestryDetailsModel detailModel) { var mockRepository = new Mock <ICharacterNameRepository>(); mockRepository.Setup(x => x.GetAncestry(detailModel.Code)).ReturnsAsync(detailModel); var rng = new RandomNumberGenerator(); var ris = new RandomItemSelector(rng); var mockNumberGenerator = new Mock <IRandomNumberGenerator>(); var generator = new CharacterNameGenerator(mockRepository.Object, ris, rng); return(generator); }
public static void Main() { const int N = 100; // Example #1 int[] allNumbers = new int[N]; for (int i = 0; i < allNumbers.Length; ++i) { allNumbers[i] = i + 1; } int[] excludedNumbers = { 5, 7, 17, 23 }; Console.WriteLine(RandomItemSelector.SelectRandomElement(allNumbers, excludedNumbers)); // Example #2 List <string> allStrings = new List <string>(); for (int i = 0; i < N; ++i) { allStrings.Add("Item #" + (i + 1)); } string[] excludedStrings = { "Item #5", "Item #7", "Item #17", "Item #23" }; Console.WriteLine(RandomItemSelector.SelectRandomElement(allStrings, excludedStrings)); }
public void GetRandomWeightedItem_WithEmptyArray_Throws() { var randomItemSelector = new RandomItemSelector(new RandomNumberGenerator()); Assert.Throws <ArgumentException>(() => randomItemSelector.GetRandomWeightedItem <WeightedItem>(new WeightedItem[0])); }
public RandomCrystalPositionGenerator() { selector = new RandomItemSelector(5); }