public void FieldLocation_CheckContructors()
        {
            FieldLocation loc = new FieldLocation();
            Assert.AreEqual(0, loc.X);
            Assert.AreEqual(0, loc.Y);
            Assert.AreEqual(false, loc.Immutable);

            loc = new FieldLocation(10, 20);
            Assert.AreEqual(10, loc.X);
            Assert.AreEqual(20, loc.Y);
            Assert.AreEqual(false, loc.Immutable);

            loc = new FieldLocation(-20, -30, true);
            Assert.AreEqual(-20, loc.X);
            Assert.AreEqual(-30, loc.Y);
            Assert.AreEqual(true, loc.Immutable);

            loc = new FieldLocation(false);
            Assert.AreEqual(0, loc.X);
            Assert.AreEqual(0, loc.Y);
            Assert.AreEqual(false, loc.Immutable);

            loc = new FieldLocation(true);
            Assert.AreEqual(0, loc.X);
            Assert.AreEqual(0, loc.Y);
            Assert.AreEqual(true, loc.Immutable);

            loc = new FieldLocation { X = 10, Y = 30 };
            Assert.AreEqual(10, loc.X);
            Assert.AreEqual(30, loc.Y);
            Assert.AreEqual(false, loc.Immutable);

            loc = new ImmutableFieldLocation();
            Assert.AreEqual(0, loc.X);
            Assert.AreEqual(0, loc.Y);
            Assert.AreEqual(true, loc.Immutable);

            loc = new ImmutableFieldLocation { X = 0, Y = 0 };
            Assert.AreEqual(0, loc.X);
            Assert.AreEqual(0, loc.Y);
            Assert.AreEqual(true, loc.Immutable);

            loc = new ImmutableFieldLocation { X = 100, Y = 200 };
            Assert.AreEqual(100, loc.X);
            Assert.AreEqual(200, loc.Y);
            Assert.AreEqual(true, loc.Immutable);

            loc = new ImmutableFieldLocation { X = -200, Y = -300 };
            Assert.AreEqual(-200, loc.X);
            Assert.AreEqual(-300, loc.Y);
            Assert.AreEqual(true, loc.Immutable);
        }
        public void FieldLocation_CheckProperties()
        {
            FieldLocation loc = new FieldLocation();
            Assert.AreEqual(0, loc.X);
            Assert.AreEqual(0, loc.Y);
            Assert.AreEqual(false, loc.Immutable);

            loc.X = 100;
            Assert.AreEqual(100, loc.X);
            loc.X = -200;
            Assert.AreEqual(-200, loc.X);
            loc.X = 0;
            Assert.AreEqual(0, loc.X);

            loc.Y = 100;
            Assert.AreEqual(100, loc.Y);
            loc.Y = -200;
            Assert.AreEqual(-200, loc.Y);
            loc.Y = 0;
            Assert.AreEqual(0, loc.Y);

            loc = new ImmutableFieldLocation { X = 10, Y = 20 };
            Assert.AreEqual(10, loc.X);
            Assert.AreEqual(20, loc.Y);
            Assert.AreEqual(true, loc.Immutable);

            loc.X = 100;
            Assert.AreEqual(10, loc.X);
            loc.X = -200;
            Assert.AreEqual(10, loc.X);
            loc.X = 0;
            Assert.AreEqual(10, loc.X);

            loc.Y = 100;
            Assert.AreEqual(20, loc.Y);
            loc.Y = -200;
            Assert.AreEqual(20, loc.Y);
            loc.Y = 0;
            Assert.AreEqual(20, loc.Y);
        }