public void FuzzySuccessFind() { var nothing = new Material(1, 1); var space = new GridBox(new Box(new Position(10, 10, 10), new Position(28, 36, 28))); foreach (var block in space.Blocks()) { this.Provider.SetMaterial(this.Filler, block); } var size = new Position(9, 13, 9); var toFind = new Box(new Position(15, 17, 15), new Position(23, 29, 23)); var randoms = new RandomBlocks(space); foreach (var i in Enumerable.Range(0, 100)) { var finishingBlock = randoms .Where(b => toFind.Outfits(new Box(b, b))) .First(); var checker = new FilledBoxChecker(this.Surveyor, finishingBlock, size, this.Filler); var emptyCount = randoms.Generator.Next(15) + 1; var empties = randoms.Where(b => !toFind.Outfits(new Box(b, b))).Take(emptyCount).ToList(); foreach(var empty in empties) { this.Provider.SetMaterial(nothing, empty); } Assert.IsTrue(null != checker.MachineSpace()); foreach(var empty in empties) { this.Provider.SetMaterial(this.Filler, empty); } } }
public void FuzzyFailToFind() { var nothing = new Material(1, 1); var space = new GridBox(new Box(new Position(10, 10, 10), new Position(42, 12, 42))); foreach (var block in space.Blocks()) { this.Provider.SetMaterial(this.Filler, block); } var randoms = new RandomBlocks(space); foreach (var i in Enumerable.Range(0, 100)) { var finishingBlock = randoms.First(); var checker = new FilledBoxChecker(this.Surveyor, finishingBlock, new Position(33, 3, 33), this.Filler); var emptyCount = randoms.Generator.Next(15) + 1; var empties = randoms.Where(b => b != finishingBlock).Take(emptyCount).ToList(); foreach(var empty in empties) { this.Provider.SetMaterial(nothing, empty); } Assert.AreEqual(null, checker.MachineSpace()); foreach(var empty in empties) { this.Provider.SetMaterial(this.Filler, empty); } } }