public void TestNegativeArea()
        {
            var expandableRectangleArray = new ExpandableRectangleArray<int>();
            expandableRectangleArray.AddLast(new Point(-1, -1), new[,] {{1, 2}, {1, 2}});

            var result = expandableRectangleArray.GetArray();
            result.Should().Equal(new[,] {{2}});
            expandableRectangleArray.TotalArea.Should().Be(new Rectangle(0, 0, 1, 1));
        }
        public void TestGetArrayNoBase()
        {
            var expandableRectangleArray = new ExpandableRectangleArray<int>();
            expandableRectangleArray.AddLast(new Point(1, 1), new[,] {{5, 6}, {7, 8}});
            expandableRectangleArray.AddFirst(new Point(2, 2), new[,] {{1, 2}, {3, 4}});

            var result = expandableRectangleArray.GetArray();
            result.Should().Equal(new[,] {{5, 6, 0}, {7, 8, 2}, {0, 3, 4}});
            expandableRectangleArray.TotalArea.Should().Be(new Rectangle(1, 1, 3, 3));
        }
        public void TestGetArraySmallBase()
        {
            var expandableRectangleArray = new ExpandableRectangleArray<int>();
            expandableRectangleArray.AddLast(new Point(1, 1), new[,] {{5, 6}, {7, 8}});
            expandableRectangleArray.AddFirst(new Point(2, 2), new[,] {{1, 2}, {3, 4}});

            var result = expandableRectangleArray.GetArray(new[,] {{-1, -2, -3}, {-5, -6, -7}, {-9, -10, -11}, {-13, -14, -15}});
            result.Should().Equal(new[,] {{5, 6}, {7, 8}, {-14, 3}});
            expandableRectangleArray.TotalArea.Should().Be(new Rectangle(1, 1, 3, 3));
        }