private static SummaryData ExecuteFreeSpin(int level, RequestContext <BonusArgs> bonusRequestcontext, FuDaoLeResult result) { var bonus = module.CreateBonus(result); var summData = new SummaryData(); var freeSpinBonus = bonus.Value as FreeSpinBonus; do { summData.FSpinCounter++; var mystery = ParSheet.GetFreeGameMysteryIndex(RandomNumberEngine.NextDouble()); var wheel = ParSheet.CreateWheelForFreeSpin(level, mystery); var freeSpinResult = Engine.ClaimBonus(level, freeSpinBonus, bonusRequestcontext, wheel) as FuDaoLeFreeSpinResult; summData.FSTotalWin += freeSpinResult.Win; if (freeSpinResult.SpinResult.HasBonus) { summData.FgFHit++; } if (freeSpinResult.IsCompleted) { break; } } while (true); return(summData); }
public void EngineShouldCopyBonusValuesFromResultToXml(int gameId, int level) { var module = GetModule(gameId); var spinResult = GenerateWithBonusSpinResult(level); var revealItems = RevealBonusEngine.CreateRevealItems(module.Configuration.BonusConfig.Reveal.ItemWeights); var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult); var revealItem = RandomNumberEngine.Next(Reveal.RandomWeightMinRange, Reveal.RandomWeightMaxRange); revealBonus.UpdateBonus(revealItems, revealItem); var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus); var xElement = revealBonusResult.ToXElement(); var responseXml = new RevealBonusXml(); using (var xmlReader = xElement.CreateReader()) { responseXml.ReadXml(xmlReader); } Assert.IsNull(responseXml.GetSchema()); Assert.AreEqual(revealBonusResult.Win, responseXml.Win); Assert.AreEqual(revealBonusResult.Multiplier, responseXml.Multiplier); Assert.AreEqual(revealBonusResult.RevealItem, responseXml.RevealItem); Assert.AreEqual(string.Join(',', revealBonusResult.RevealItems), string.Join(',', responseXml.RevealItems)); }
public void EngineShouldCopyBonusValuesFromResultToXml(int gameId, int level) { var module = GetModule(gameId); var spinResult = GenerateWithBonusSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); var freeSpinResult = GenerateFreeSpinResult(level); freeSpinBonus.UpdateBonus(freeSpinResult); var freeSpinBonusResult = FreeSpinBonusEngine.CreateFreeSpinBonusResult(freeSpinBonus, freeSpinResult); var xElement = freeSpinBonusResult.ToXElement(); var responseXml = new FreeSpinBonusXml(); using (var xmlReader = xElement.CreateReader()) { responseXml.ReadXml(xmlReader); } Assert.IsNull(responseXml.GetSchema()); Assert.AreEqual(freeSpinBonusResult.TotalWin, responseXml.TotalWin); Assert.AreEqual(freeSpinBonusResult.Counter, responseXml.Counter); Assert.AreEqual(freeSpinBonusResult.NumberOfFreeSpin, responseXml.NumberOfFreeSpin); }
public void EngineShouldCreateFreeSpinBonusResultFromFreeSpinResult(int level) { var config = new Configuration(); var requestContext = new RequestContext <BonusArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new BonusArgs(), Platform = PlatformType.All }; var spinResult = GenerateSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); var freeSpinResult = FreeSpinBonusEngine.CreateFreeSpinResult(level, requestContext, freeSpinMode, spinResult, config); Assert.DoesNotThrow(() => FreeSpinBonusEngine.CreateFreeSpinBonusResult(freeSpinBonus, freeSpinResult)); }
public void EngineShouldReadResponseXmlOfFreeSpinBonusResult(int gameId, int level) { var module = GetModule(gameId); var spinResult = GenerateWithBonusSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); var freeSpinResult = GenerateFreeSpinResult(level); freeSpinBonus.UpdateBonus(freeSpinResult); var freeSpinBonusResult = FreeSpinBonusEngine.CreateFreeSpinBonusResult(freeSpinBonus, freeSpinResult); var xElement = freeSpinBonusResult.ToXElement(); Assert.DoesNotThrow(() => { using (var xmlReader = xElement.CreateReader()) { var responseXml = new FreeSpinBonusXml(); responseXml.ReadXml(xmlReader); } }); }
public void EngineShouldWriteXmlOfRevealBonusResultXml(int gameId, int level) { var module = GetModule(gameId); var spinResult = GenerateWithBonusSpinResult(level); var revealItems = RevealBonusEngine.CreateRevealItems(module.Configuration.BonusConfig.Reveal.ItemWeights); var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult); var revealItem = RandomNumberEngine.Next(Reveal.RandomWeightMinRange, Reveal.RandomWeightMaxRange); revealBonus.UpdateBonus(revealItems, revealItem); var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus); var xElement = revealBonusResult.ToXElement(); Assert.DoesNotThrow(() => { var responseXml = new RevealBonusXml(); using (var xmlReader = xElement.CreateReader()) { responseXml.ReadXml(xmlReader); } using (var memStream = new MemoryStream()) using (var xmlWriter = XmlWriter.Create(memStream, new XmlWriterSettings() { ConformanceLevel = ConformanceLevel.Auto })) { xmlWriter.WriteStartElement("bonus"); responseXml.WriteXml(xmlWriter); } }); }
public void EngineShouldCompleteFreeSpinBonusResultOnBonusCompletion(int level) { var freeSpinResult = GenerateWinningFreeSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(freeSpinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); freeSpinBonus.UpdateBonus(freeSpinResult); freeSpinResult.UpdateBonus(freeSpinBonus); var freeSpinBonusResult = FreeSpinBonusEngine.CreateFreeSpinBonusResult(freeSpinBonus, freeSpinResult); while (!freeSpinBonus.IsCompleted) { freeSpinResult = GenerateNonWinningFreeSpinResult(level); freeSpinBonus.UpdateBonus(freeSpinResult); freeSpinBonusResult = FreeSpinBonusEngine.CreateFreeSpinBonusResult(freeSpinBonus, freeSpinResult); } Assert.IsTrue(freeSpinBonusResult.IsCompleted); }
public T this[int level] { get { var rnd = RandomNumberEngine.NextDouble(); var ratio = weighted[level]; var index = ratio[rnd]; return(values[level][index]); } }
public void EngineShouldCreateFreeSpinBonus(int level) { var spinResult = GenerateSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); Assert.DoesNotThrow(() => FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus)); }
public void EngineShouldCreateFreeSpinBonusInstance(int level) { var config = new Configuration(); var spinResult = GenerateWithBonusSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); Assert.IsNotNull(FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus)); }
public void EngineShouldStartAndCompleteBonusOnCreateFreeSpinSelectionBonusResult(int level) { var config = new Configuration(); var spinResult = GenerateWithBonusSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); Assert.IsTrue(freeSpinSelectionBonus.IsStarted); Assert.IsTrue(freeSpinSelectionBonus.IsCompleted); }
public void EngineShouldCreateFreeSpinBonusWithTransactionId(int level) { var config = new Configuration(); var spinResult = GenerateWithBonusSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); Assert.IsTrue(freeSpinBonus.SpinTransactionId == spinResult.TransactionId); }
public static List <T> Shuffle <T>(this List <T> list) { int n = list.Count; while (n > 1) { n--; int k = RandomNumberEngine.Next(n); T value = list[k]; list[k] = list[n]; list[n] = value; } return(list); }
public void EngineShouldCreateFreeSpinBonusWithValidGuid(int level) { var config = new Configuration(); var spinResult = GenerateWithBonusSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); Assert.IsTrue(!string.IsNullOrWhiteSpace(freeSpinBonus.Guid.ToString())); }
public void ModuleShouldExecuteBonus(int gameId, int level) { var module = GetModule(gameId); var spinWithBonus = GenerateWithBonusSpinResult(level); var bonus = module.CreateBonus(spinWithBonus).Value; var bonusEntity = GetBonusEntity(new Model.UserGameKey(-1, gameId), bonus); var bonusContext = GetMockBonusRequestContext(RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection), gameId); Assert.DoesNotThrow(() => { var bonusResult = module.ExecuteBonus(level, bonusEntity, bonusContext); Assert.IsTrue(!bonusResult.IsError); }); }
public void EngineShouldCreateBonusResponseXmlOfRevealBonusResult(int gameId, int level) { var module = GetModule(gameId); var spinResult = GenerateWithBonusSpinResult(level); var revealItems = RevealBonusEngine.CreateRevealItems(module.Configuration.BonusConfig.Reveal.ItemWeights); var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult); var revealItem = RandomNumberEngine.Next(Reveal.RandomWeightMinRange, Reveal.RandomWeightMaxRange); revealBonus.UpdateBonus(revealItems, revealItem); var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus); var responseXml = revealBonusResult.ToResponseXml(ResponseXmlFormat.History); Assert.IsNotNull(responseXml); }
public void EngineShouldCreateFreeSpinBonusResultWithSameGameResultAndBonus(int level) { var freeSpinResult = GenerateWinningFreeSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(freeSpinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); freeSpinBonus.UpdateBonus(freeSpinResult); var freeSpinSelectionBonusResult = FreeSpinBonusEngine.CreateFreeSpinSelectionBonusResult(freeSpinBonus); Assert.AreSame(freeSpinSelectionBonusResult.Bonus, freeSpinBonus); }
public void EngineShouldIncompleteFreeSpinBonusIfWithCounter(int level) { var config = new Configuration(); var freeSpinResult = GenerateWinningFreeSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(freeSpinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); var initialCounter = freeSpinBonus.Counter; freeSpinBonus.UpdateBonus(freeSpinResult); Assert.IsTrue(!freeSpinBonus.IsCompleted); }
public void EngineShouldCreateFreeSpinBonusResultWithSameSpinTransactionId(int level) { var freeSpinResult = GenerateWinningFreeSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(freeSpinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); freeSpinBonus.UpdateBonus(freeSpinResult); var freeSpinSelectionBonusResult = FreeSpinBonusEngine.CreateFreeSpinSelectionBonusResult(freeSpinBonus); Assert.IsTrue(freeSpinSelectionBonusResult.SpinTransactionId == freeSpinBonus.SpinTransactionId); }
public void EngineShouldShouldDeductCounterOnFreeSpin(int level) { var config = new Configuration(); var freeSpinResult = GenerateNonWinningFreeSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(freeSpinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); var initialCounter = freeSpinBonus.Counter; freeSpinBonus.UpdateBonus(freeSpinResult); Assert.AreEqual(initialCounter - 1, freeSpinBonus.Counter); }
/// <summary> /// Initializes a random number engine based on the selected type. /// /// To switch engines, a new object will have to be created. In practice /// this can be handled automatically just by changing the engine type enum. /// </summary> /// <param name="engine"></param> public RandomNumber(RandomNumberEngine engine) { switch( engine ) { case RandomNumberEngine.RANDOM_DOTNET_BUILTIN: _netEngine = new Random(); break; case RandomNumberEngine.RANDOM_R250_521: _r250521Engine = new R250_521(); break; case RandomNumberEngine.RANDOM_MERSENNE_TWISTER: _mtEngine = new MT(); break; default: throw new IndexOutOfRangeException( "RandomNumber(): Bad random number generator setting"); } _engine = engine; }
public void SpinResultShouldHaveSameBonusDetailsOnResultUpdate(int level) { var spinResult = GenerateWinningFreeSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var selection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(selection); freeSpinSelectionBonus.UpdateBonus(selection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); freeSpinBonus.UpdateBonus(spinResult); spinResult.UpdateBonus(freeSpinBonus); var isEqualBonusId = spinResult.BonusElement.Id == freeSpinBonus.Id; var isEqualBonusGuid = spinResult.BonusElement.Value == freeSpinBonus.Guid.ToString("N"); Assert.IsTrue(isEqualBonusId && isEqualBonusGuid); }
private static BullRushSpinResult GenerateJackpotResult(RequestContext <BonusArgs> requestContext, BullRushJackpotBonusResult br, BullRushJackpotBonus BullRushBonus) { var bullRushSpinResult = new BullRushSpinResult() { Level = br.SpinResult.Level, SpinBet = br.SpinResult.SpinBet, BonusPositions = br.SpinResult.BonusPositions, IsRacing = br.SpinResult.IsRacing, IsBonusRacing = br.SpinResult.IsBonusRacing, SelectedOuterWheelValue = br.SpinResult.SelectedOuterWheelValue, SelectedOuterWheelIndex = br.SpinResult.SelectedOuterWheelIndex, CurrentRacingCounter = br.SpinResult.CurrentRacingCounter, CurrentJackpotCounter = br.SpinResult.CurrentJackpotCounter, NumOfJackpot = br.SpinResult.NumOfJackpot, InventoryList = br.SpinResult.InventoryList, CumulativeWin = br.SpinResult.CumulativeWin, Bet = 0, SpinTransactionId = br.SpinTransactionId.HasValue ? br.SpinTransactionId : br.TransactionId, PlatformType = requestContext.Platform, RoundId = br.RoundId, CurrentRacingStep = br.SpinResult.CurrentRacingStep, CurrentJackpotStep = br.SpinResult.CurrentJackpotStep, InnerWheel = br.SpinResult.InnerWheel }; var random = RandomNumberEngine.NextDouble(); if (bullRushSpinResult.SpinBet.FunPlayDemoKey == 1) { random = 1; } var selectedCoinValue = BullRushConfiguration.InnerWheelWeight.FirstOrDefault(item => random <= item.Key).Value; bullRushSpinResult.SelectedInnerWheelIndex = BullRushConfiguration.InnerWheel.IndexOf(selectedCoinValue); bullRushSpinResult.SelectedInnerWheelValue = selectedCoinValue; br.SpinResult = bullRushSpinResult; return(bullRushSpinResult); }
public void FreeSpinResultShouldHaveSameCountersOnBonusElementOnResultUpdate(int level) { var freeSpinResult = GenerateWinningFreeSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(freeSpinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); freeSpinBonus.UpdateBonus(freeSpinResult); freeSpinResult.UpdateBonus(freeSpinBonus); var isEqualCurrentFreeSpinCounter = freeSpinResult.BonusElement.Count == freeSpinBonus.Counter; var isEqualFreeSpinCount = freeSpinResult.BonusElement.NumberOfFreeSpin == freeSpinBonus.NumberOfFreeSpin; Assert.IsTrue(isEqualFreeSpinCount && isEqualCurrentFreeSpinCounter); }
public void EngineShouldCreateBonusResponseXmlOfFreeSpinBonusResult(int level) { var freeSpinResult = GenerateWinningFreeSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(freeSpinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); freeSpinBonus.UpdateBonus(freeSpinResult); var freeSpinSelectionBonusResult = FreeSpinBonusEngine.CreateFreeSpinSelectionBonusResult(freeSpinBonus); var responseXml = freeSpinSelectionBonusResult.ToResponseXml(ResponseXmlFormat.History); Assert.IsNotNull(responseXml); }
public void EngineShouldCreateBonusXElementOfFreeSpinBonusResult(int level) { var freeSpinResult = GenerateWinningFreeSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(freeSpinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); freeSpinBonus.UpdateBonus(freeSpinResult); var freeSpinSelectionBonusResult = FreeSpinBonusEngine.CreateFreeSpinSelectionBonusResult(freeSpinBonus); var xElement = freeSpinSelectionBonusResult.ToXElement(); Assert.IsNotNull(xElement); }
public static List <List <decimal> > GenerateBonusRacing(decimal selectedBonusRacingPrize, decimal lineBet, int funplayKey) { var distributedAllRows = new List <List <decimal> >(); for (int i = 0; i < BullRushConfiguration.HeightBonusRacing; i++) { var rowBonus = new List <decimal>() { 0, 0, 0 }; var randomIndex = RandomNumberEngine.Next(0, 2); rowBonus[randomIndex] = (selectedBonusRacingPrize / BullRushConfiguration.HeightBonusRacing) * lineBet; distributedAllRows.Add(rowBonus); } return(distributedAllRows); }
public static FreeSpinResult GenerateFreeSpinResult(int level) { var config = new Configuration(); var spinResult = GenerateWithBonusSpinResult(level); var requestContext = new RequestContext <BonusArgs>("", "", PlatformType.Web) { GameSetting = new Model.Entity.GameSetting { GameSettingGroupId = 0 }, Currency = new Model.Entity.Currency { Id = 0 }, Parameters = new BonusArgs(), Platform = PlatformType.All }; var randomFreeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection)); return(FreeSpinBonusEngine.CreateFreeSpinResult(level, requestContext, randomFreeSpinMode, spinResult, config)); }
public void EngineShouldCompleteFreeSpinBonusWithZeroCounter(int level) { var config = new Configuration(); var spinResult = GenerateWithBonusSpinResult(level); var freeSpinSelectionBonus = FreeSpinBonusEngine.CreateFreeSpinSelectionBonus(spinResult); var freeSpinSelection = RandomNumberEngine.Next(FreeSpinMode.MinimumFreeSpinSelection, FreeSpinMode.MaximumFreeSpinSelection); var freeSpinMode = FreeSpinBonusEngine.GetFreeSpinMode(freeSpinSelection); freeSpinSelectionBonus.UpdateBonus(freeSpinSelection, freeSpinMode); var freeSpinBonus = FreeSpinBonusEngine.CreateFreeSpinBonus(freeSpinSelectionBonus); for (var count = 0; count < freeSpinBonus.NumberOfFreeSpin; count++) { var freeSpinResult = GenerateNonWinningNonBonusFreeSpinResult(level); freeSpinBonus.UpdateBonus(freeSpinResult); } Assert.IsTrue(freeSpinBonus.IsCompleted); }
/// <summary> /// Initializes a random number engine based on the selected type. /// /// To switch engines, a new object will have to be created. In practice /// this can be handled automatically just by changing the engine type enum. /// </summary> /// <param name="engine"></param> public RandomNumber(RandomNumberEngine engine) { switch (engine) { case RandomNumberEngine.RANDOM_DOTNET_BUILTIN: _netEngine = new Random(); break; case RandomNumberEngine.RANDOM_R250_521: _r250521Engine = new R250_521(); break; case RandomNumberEngine.RANDOM_MERSENNE_TWISTER: _mtEngine = new MT(); break; default: throw new IndexOutOfRangeException("RandomNumber(): Bad random number generator setting"); } _engine = engine; }
public void EngineShouldReadResponseXmlOfRevealBonusResult(int gameId, int level) { var module = GetModule(gameId); var spinResult = GenerateWithBonusSpinResult(level); var revealItems = RevealBonusEngine.CreateRevealItems(module.Configuration.BonusConfig.Reveal.ItemWeights); var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult); var revealItem = RandomNumberEngine.Next(Reveal.RandomWeightMinRange, Reveal.RandomWeightMaxRange); revealBonus.UpdateBonus(revealItems, revealItem); var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus); var xElement = revealBonusResult.ToXElement(); Assert.DoesNotThrow(() => { using (var xmlReader = xElement.CreateReader()) { var responseXml = new RevealBonusXml(); responseXml.ReadXml(xmlReader); } }); }