public void Shrink_Invalid_Throws()
        {
            {
                var line = new OrthogonalLine(new IntVector2(0, 0), new IntVector2(5, 0));
                Assert.Throws <ArgumentException>(() => line.Shrink(3));
            }

            {
                var line = new OrthogonalLine(new IntVector2(0, 0), new IntVector2(-6, 0));
                Assert.Throws <ArgumentException>(() => line.Shrink(4, 3));
            }
        }
        public void Shrink_Valid_ReturnsShrinked()
        {
            {
                var line     = new OrthogonalLine(new IntVector2(0, 0), new IntVector2(5, 0));
                var expected = new OrthogonalLine(new IntVector2(1, 0), new IntVector2(3, 0));
                var shrinked = line.Shrink(1, 2);

                Assert.AreEqual(expected, shrinked);
            }

            {
                var line     = new OrthogonalLine(new IntVector2(0, 0), new IntVector2(0, 6));
                var expected = new OrthogonalLine(new IntVector2(0, 2), new IntVector2(0, 5));
                var shrinked = line.Shrink(2, 1);

                Assert.AreEqual(expected, shrinked);
            }
        }