コード例 #1
0
        public void BreadthFirstSearch_PlacedObjectsNull_ShouldReturnEmptyResult_Issue197()
        {
            // Arrange
            IEnumerable <AnnoObject> placedObjects = null;
            var startObjects = defaultObjectList;

            var expectedResult = new bool[0][];

            // Act
            var visitedCells = RoadSearchHelper.BreadthFirstSearch(placedObjects, startObjects, o => (int)o.InfluenceRange);

            // Assert
            Assert.Equal(expectedResult, visitedCells);
        }
コード例 #2
0
        public void BreadthFirstSearch_StartObjectCountIsZero_ShouldReturnEmptyResult()
        {
            // Arrange
            var placedObjects = defaultObjectList;
            var startObjects  = Enumerable.Empty <AnnoObject>();

            var expectedResult = new bool[0][];

            // Act
            var visitedCells = RoadSearchHelper.BreadthFirstSearch(placedObjects, startObjects, o => (int)o.InfluenceRange);

            // Assert
            Assert.Equal(expectedResult, visitedCells);
        }
コード例 #3
0
        public void BreadthFirstSearch_StartObjectCountIsZero_ShouldReturnEMptyResult()
        {
            // Arrange
            var placedObjects = new LayoutLoader().LoadLayout(GetTestDataFile("BreadthFirstSearch_FindBuildingInfluenceRange"), true);
            var startObjects  = Enumerable.Empty <AnnoObject>();

            var expectedResult = new bool[0][];

            // Act
            var visitedCells = RoadSearchHelper.BreadthFirstSearch(placedObjects, startObjects, o => (int)o.InfluenceRange);

            // Assert
            Assert.Equal(expectedResult, visitedCells);
        }
コード例 #4
0
        public void BreadthFirstSearch_FindObjectsInInfluenceRange()
        {
            // Arrange
            var placedObjects = new LayoutLoader().LoadLayout(GetTestDataFile("BreadthFirstSearch_FindObjectsInInfluenceRange"), true);
            var startObjects  = placedObjects.Where(o => o.Label == "Start").ToList();

            // Act
            var objectsInInfluence = new List <AnnoObject>();

            RoadSearchHelper.BreadthFirstSearch(placedObjects, startObjects, o => (int)o.InfluenceRange + 1, inRangeAction: o => objectsInInfluence.Add(o));

            // Assert
            Assert.Equal(placedObjects.Where(o => o.Label == "TargetIn").ToHashSet(), objectsInInfluence.ToHashSet());
            Assert.True(placedObjects.Where(o => o.Label == "TargetOut").All(o => !objectsInInfluence.Contains(o)));
        }
コード例 #5
0
        public void BreadthFirstSearch_FindBuildingInfluenceRange()
        {
            // Arrange
            var placedObjects = defaultObjectList;
            var startObjects  = placedObjects.Where(o => o.Label == "Start").ToList();

            foreach (var startObject in startObjects)
            {
                var expectedCount = 4 * Enumerable.Range(1, (int)startObject.InfluenceRange).Sum() + 1;

                // Act
                var visitedCells = RoadSearchHelper.BreadthFirstSearch(placedObjects, new[] { startObject }, o => (int)o.InfluenceRange);

                // Assert
                Assert.Equal(expectedCount, visitedCells.Sum(c => c.Count(visited => visited)));
            }
        }