예제 #1
0
        public void CanCreateFromPositionAndSize()
        {
            var pos    = new Position2d(1, 2);
            var size   = new Size2d(3, 4);
            var anchor = Anchor2d.Center;

            var rect = new Rect2d(pos, size);

            DolphAssert.EqualF(pos.X, rect.X);
            DolphAssert.EqualF(pos.Y, rect.Y);
            DolphAssert.EqualF(size.Width, rect.Width);
            DolphAssert.EqualF(size.Height, rect.Height);

            rect = new Rect2d(pos, size, anchor);
            DolphAssert.EqualF(pos.X, rect.X);
            DolphAssert.EqualF(pos.Y, rect.Y);
            DolphAssert.EqualF(size.Width, rect.Width);
            DolphAssert.EqualF(size.Height, rect.Height);
            Assert.Equal(anchor, rect.Origin.Anchor);

            rect = new Rect2d(pos, size, new Origin2d(anchor));
            DolphAssert.EqualF(pos.X, rect.X);
            DolphAssert.EqualF(pos.Y, rect.Y);
            DolphAssert.EqualF(size.Width, rect.Width);
            DolphAssert.EqualF(size.Height, rect.Height);
            Assert.Equal(anchor, rect.Origin.Anchor);
        }
예제 #2
0
        public void CanCreateFromValues()
        {
            var x      = 1;
            var y      = 2;
            var width  = 3;
            var height = 4;
            var anchor = Anchor2d.MiddleRight;

            var rect = new Rect2d(x, y, width, height);

            DolphAssert.EqualF(x, rect.X);
            DolphAssert.EqualF(y, rect.Y);
            DolphAssert.EqualF(width, rect.Width);
            DolphAssert.EqualF(height, rect.Height);

            rect = new Rect2d(x, y, width, height, anchor);
            DolphAssert.EqualF(x, rect.X);
            DolphAssert.EqualF(y, rect.Y);
            DolphAssert.EqualF(width, rect.Width);
            DolphAssert.EqualF(height, rect.Height);
            Assert.Equal(anchor, rect.Origin.Anchor);

            rect = new Rect2d(x, y, width, height, new Origin2d(anchor));
            DolphAssert.EqualF(x, rect.X);
            DolphAssert.EqualF(y, rect.Y);
            DolphAssert.EqualF(width, rect.Width);
            DolphAssert.EqualF(height, rect.Height);
            Assert.Equal(anchor, rect.Origin.Anchor);
        }
예제 #3
0
        public void CanGetPositionWithAnchor(Anchor2d anchor, float expectedX, float expectedY)
        {
            var rect = new Rect2d(X, Y, W, H);
            var pos  = rect.GetAnchorPosition(anchor);

            DolphAssert.EqualF(expectedX, pos.X);
            DolphAssert.EqualF(expectedY, pos.Y);
        }
예제 #4
0
        public void CanConvertToVector()
        {
            var pos = new Position2d(1, 2);
            var vec = pos.ToVector();

            DolphAssert.EqualF(pos.X, vec.X);
            DolphAssert.EqualF(pos.Y, vec.Y);
        }
예제 #5
0
        public void CanTurnByRadians(float r1, float radians, float r2)
        {
            var rot = new Rotation2d(r1);

            rot.Turn(radians);

            DolphAssert.EqualF(r2, rot.Radians);
        }
예제 #6
0
        public void CanTurnByDegrees(float r1, float degrees, float r2)
        {
            var rot = Rotation2d.FromDegrees(r1);

            rot.TurnDegrees(degrees);

            DolphAssert.EqualF(r2, rot.Degrees);
        }
예제 #7
0
        public void CanConvertToPosition()
        {
            var vec = new Vector2d(1, 2);
            var pos = vec.ToPosition();

            DolphAssert.EqualF(vec.X, pos.X);
            DolphAssert.EqualF(vec.Y, pos.Y);
        }
예제 #8
0
        public void CanScaleByMagnitude(float w1, float h1, float mag, float w2, float h2)
        {
            var size = new Size2d(w1, h1);

            size.Scale(mag);

            DolphAssert.EqualF(w2, size.Width);
            DolphAssert.EqualF(h2, size.Height);
        }
예제 #9
0
        public void CanShiftPosition(float x1, float y1, float x2, float y2, float x3, float y3)
        {
            var pos = new Position2d(x1, y1);

            pos.Shift(x2, y2);

            DolphAssert.EqualF(x3, pos.X);
            DolphAssert.EqualF(y3, pos.Y);
        }
예제 #10
0
        public void TestMultiply(float x1, float y1, float x2, float y2, float x3, float y3)
        {
            var vec = new Vector2d(x1, y1);

            vec *= new Vector2d(x2, y2);

            DolphAssert.EqualF(x3, vec.X);
            DolphAssert.EqualF(y3, vec.Y);
        }
예제 #11
0
        public void TestSubtract(float x1, float y1, float x2, float y2, float x3, float y3)
        {
            var vec = new Vector2d(x1, y1);

            vec -= new Vector2d(x2, y2);

            DolphAssert.EqualF(x3, vec.X);
            DolphAssert.EqualF(y3, vec.Y);
        }
예제 #12
0
        public void TestNegative(float x1, float y1, float x2, float y2)
        {
            var vec = new Vector2d(x1, y1);

            vec = -vec;

            DolphAssert.EqualF(x2, vec.X);
            DolphAssert.EqualF(y2, vec.Y);
        }
예제 #13
0
        public void CanTurnByRotation()
        {
            var rot1 = Rotation2d.FromDegrees(45);
            var rot2 = Rotation2d.FromDegrees(90);

            rot1.Turn(rot2);

            DolphAssert.EqualF(135, rot1.Degrees);
        }
예제 #14
0
        public void CanSetVector()
        {
            var vec = new Vector2d(1, 2);

            vec.Set(3, 4);

            DolphAssert.EqualF(3, vec.X);
            DolphAssert.EqualF(4, vec.Y);
        }
예제 #15
0
        public void CanMoveToPosition()
        {
            var pos = new Position2d(1, 2);

            pos.MoveTo(3, 4);

            DolphAssert.EqualF(3, pos.X);
            DolphAssert.EqualF(4, pos.Y);
        }
예제 #16
0
        public void TestNegative(float x1, float y1, float x2, float y2)
        {
            var pos = new Position2d(x1, y1);

            pos = -pos;

            DolphAssert.EqualF(x2, pos.X);
            DolphAssert.EqualF(y2, pos.Y);
        }
예제 #17
0
        public void CanCreateFromRect()
        {
            var rect1 = new Rect2d(1, 2, 3, 4);
            var rect2 = new Rect2d(rect1);

            DolphAssert.EqualF(rect1.X, rect2.X);
            DolphAssert.EqualF(rect1.Y, rect2.Y);
            DolphAssert.EqualF(rect1.Width, rect2.Width);
            DolphAssert.EqualF(rect1.Height, rect2.Height);
            Assert.Equal(rect1.Origin.Anchor, rect2.Origin.Anchor);
        }
예제 #18
0
        public void CanSetPositionWithAnchor(Anchor2d anchor, float expectedTopLeftX, float expectedTopLeftY)
        {
            var rect = new Rect2d(X, Y, W, H, anchor);

            foreach (var kvp in RpMap)
            {
                var getAnchor = kvp.Key;
                var rp        = kvp.Value;

                var pos = rect.GetAnchorPosition(getAnchor);
                DolphAssert.EqualF(rp.X(expectedTopLeftX), pos.X);
                DolphAssert.EqualF(rp.Y(expectedTopLeftY), pos.Y);
            }
        }
예제 #19
0
        public void CanMoveToPosition()
        {
            var width  = 7;
            var height = 8;

            var rect = new Rect2d(1, 2, width, height);

            rect.MoveTo(3, 4);

            DolphAssert.EqualF(3, rect.X);
            DolphAssert.EqualF(4, rect.Y);
            DolphAssert.EqualF(width, rect.Width);
            DolphAssert.EqualF(height, rect.Height);
        }
예제 #20
0
        public void CanShiftPosition(float x1, float y1, float x2, float y2, float x3, float y3)
        {
            var width  = 30;
            var height = 40;

            var rect = new Rect2d(x1, y1, width, height, Anchor2d.BottomLeft);

            rect.Shift(x2, y2);

            DolphAssert.EqualF(x3, rect.X);
            DolphAssert.EqualF(y3, rect.Y);
            DolphAssert.EqualF(width, rect.Width);
            DolphAssert.EqualF(height, rect.Height);
        }
예제 #21
0
        public void CanScaleByMagnitude(float w1, float h1, float mag, float w2, float h2)
        {
            var x = 15;
            var y = 25;

            var rect = new Rect2d(x, y, w1, h1);

            rect.Scale(mag);

            DolphAssert.EqualF(x, rect.X);
            DolphAssert.EqualF(y, rect.Y);
            DolphAssert.EqualF(w2, rect.Width);
            DolphAssert.EqualF(h2, rect.Height);
        }
예제 #22
0
        public void TestSubtract(float x1, float y1, float x2, float y2, float x3, float y3)
        {
            var pos = new Position2d(x1, y1);

            pos -= new Position2d(x2, y2);

            DolphAssert.EqualF(x3, pos.X);
            DolphAssert.EqualF(y3, pos.Y);

            pos  = new Position2d(x1, y1);
            pos -= new Vector2d(x2, y2);

            DolphAssert.EqualF(x3, pos.X);
            DolphAssert.EqualF(y3, pos.Y);
        }
예제 #23
0
        public void CanScaleByVector(float w1, float h1, float x, float y, float w2, float h2)
        {
            var size = new Size2d(w1, h1);

            size.Scale(x, y);

            DolphAssert.EqualF(w2, size.Width);
            DolphAssert.EqualF(h2, size.Height);

            size = new Size2d(w1, h1);
            size.Scale(new Vector2d(x, y));

            DolphAssert.EqualF(w2, size.Width);
            DolphAssert.EqualF(h2, size.Height);
        }
예제 #24
0
        public void CanScaleByVector(float w1, float h1, float x, float y, float w2, float h2)
        {
            var rect = new Rect2d(x, y, w1, h1);

            rect.Scale(x, y);

            DolphAssert.EqualF(x, rect.X);
            DolphAssert.EqualF(y, rect.Y);
            DolphAssert.EqualF(w2, rect.Width);
            DolphAssert.EqualF(h2, rect.Height);

            rect = new Rect2d(x, y, w1, h1);
            rect.Scale(new Vector2d(x, y));

            DolphAssert.EqualF(x, rect.X);
            DolphAssert.EqualF(y, rect.Y);
            DolphAssert.EqualF(w2, rect.Width);
            DolphAssert.EqualF(h2, rect.Height);
        }
예제 #25
0
        public void CanGetFromDegrees(float degrees)
        {
            var rot = Rotation2d.FromDegrees(degrees);

            DolphAssert.EqualF(degrees, rot.Degrees);
        }