public void When_BuildRandomNumberWithReplaceAndShuffle_Then_Success() { var mainNumber = new Number(5, 4, 1, 8); var numberBuilder = new NumberBuilder(4); var newNumber = numberBuilder.Build(mainNumber, unitsToReplace: 2, unitsToShuffle: 1); var replacedUnits = newNumber.Units.Where(u => !mainNumber.HasUnitValue(u.Value)); var shuffledUnits = newNumber.Units.Where(u => mainNumber.Units.Any(x => x.Position != u.Position && x.Value == u.Value)); Assert.AreEqual(2, replacedUnits.Count()); Assert.IsTrue(shuffledUnits.Any()); Assert.IsTrue(shuffledUnits.Count() <= 2); }
public void When_BuildRandomNumberWithReplaceAndShuffleAndUnitsToAdd_Then_Success() { var mainNumber = new Number(1, 7, 5, 0); var numberBuilder = new NumberBuilder(4); var unitsToAdd = new List<INumberUnit> { new NumberUnit(2, 8) }; var newNumber = numberBuilder.Build(mainNumber, unitsToReplace: 2, unitsToAdd: unitsToAdd); var addedUnits = newNumber.Units.Where(u => u.Equals(unitsToAdd.First())); var replacedUnits = newNumber.Units.Where(u => !mainNumber.HasUnitValue(u.Value)); var shuffledUnits = newNumber.Units.Where(u => mainNumber.Units.Any(x => x.Position != u.Position && x.Value == u.Value)); Assert.AreEqual(1, addedUnits.Count()); Assert.AreEqual(3, replacedUnits.Count()); Assert.AreEqual(1, shuffledUnits.Count()); }
public void When_BuildRandomNumberWithUnitsToReplaceAndUnitsToAdd_Then_Success() { var mainNumber = new Number(0, 4, 8, 2); var numberBuilder = new NumberBuilder(4); var valuesToReplace = new List<int> { 0, 2 }; var unitsToAdd = new List<INumberUnit> { new NumberUnit(1, 3) }; var newNumber = numberBuilder.Build(mainNumber, valuesToReplace, unitsToAdd); var addedUnits = newNumber.Units.Where(u => u.Equals(unitsToAdd.First())); var replacedUnits = newNumber.Units.Where(u => !mainNumber.HasUnitValue(u.Value)); var shuffledUnits = newNumber.Units.Where(u => mainNumber.Units.Any(x => x.Position != u.Position && x.Value == u.Value)); Assert.AreEqual(1, addedUnits.Count()); Assert.AreEqual(2, replacedUnits.Count()); Assert.AreEqual(2, shuffledUnits.Count()); }