예제 #1
0
        public void Outset(int x, int y, int radiusX, int radiusY, int delta, int expectedRadiusX, int expectedRadiusY)
        {
            var region = new EllipticRegion(new Vector(x, y), new Vector(radiusX, radiusY));

            var region2 = (EllipticRegion)region.Outset(delta);

            Assert.That(region2.Radius, Is.EqualTo(new Vector(expectedRadiusX, expectedRadiusY)));
        }
예제 #2
0
        public void Shift(int x, int y, int radiusX, int radiusY, int deltaX, int deltaY, int expectedX, int expectedY)
        {
            var region = new EllipticRegion(new Vector(x, y), new Vector(radiusX, radiusY));

            var region2 = (EllipticRegion)region.Shift(new Vector(deltaX, deltaY));

            Assert.That(region2.Center, Is.EqualTo(new Vector(expectedX, expectedY)));
        }
예제 #3
0
        public void Apply(int x, int y, int radius)
        {
            var tile = new Tile {
                WallId = 1
            };
            var template = Mock.Of <ITemplate>(t => t.Apply(It.IsAny <Tile>()) == tile);
            var tool     = new BrushTool(radius, template);
            var extent   = Mock.Of <Extent>(e => e.Dimensions == new Vector(10, 10) &&
                                            e.SetTile(It.IsAny <Vector>(), It.IsAny <Tile>()));

            tool.Apply(extent, new Vector(x, y));

            var region = new EllipticRegion(new Vector(x, y), radius * Vector.One);

            foreach (var position in region.Where(extent.IsInBounds))
            {
                Mock.Get(extent).Verify(e => e.SetTile(position, tile), Times.Once);
            }
        }
예제 #4
0
        /// <inheritdoc />
        public int Apply(Extent extent, Vector position)
        {
            var region = new EllipticRegion(position, _radius * Vector.One);

            return(extent.ModifyTiles(region, _pattern));
        }
예제 #5
0
        public void LowerBound(int x, int y, int radiusX, int radiusY, int expectedX, int expectedY)
        {
            var region = new EllipticRegion(new Vector(x, y), new Vector(radiusX, radiusY));

            Assert.That(region.LowerBound, Is.EqualTo(new Vector(expectedX, expectedY)));
        }
예제 #6
0
        public void GetRadius(int radiusX, int radiusY)
        {
            var region = new EllipticRegion(Vector.Zero, new Vector(radiusX, radiusY));

            Assert.That(region.Radius, Is.EqualTo(Vector.Abs(new Vector(radiusX, radiusY))));
        }
예제 #7
0
        public void GetCenter(int x, int y)
        {
            var region = new EllipticRegion(new Vector(x, y), Vector.Zero);

            Assert.That(region.Center, Is.EqualTo(new Vector(x, y)));
        }
예제 #8
0
        public void Contains(int x, int y, int radiusX, int radiusY, int testX, int testY, bool expected)
        {
            var region = new EllipticRegion(new Vector(x, y), new Vector(radiusX, radiusY));

            Assert.That(region.Contains(new Vector(testX, testY)), Is.EqualTo(expected));
        }