Repository: AvaloniaUI/Avalonia
File: tests/Avalonia.Controls.UnitTests/GridTests.cs (C#)

Code before:
        {
            var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") };

            Change_Propery_And_Verify_Measure_Requested(grid, () =>
            {
                grid.RowDefinitions = RowDefinitions.Parse("2*,1*");
            });
        }

        [Fact]
        public void Removing_Column_Should_Invalidate_Grid()
        {
            var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") };

            Change_Propery_And_Verify_Measure_Requested(grid, () =>
            {
                grid.ColumnDefinitions.RemoveAt(0);
            });
        }

        [Fact]
        public void Removing_Row_Should_Invalidate_Grid()
        {
            var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") };

            Change_Propery_And_Verify_Measure_Requested(grid, () =>
            {
                grid.RowDefinitions.RemoveAt(0);
            });
        }

        [Fact]
        public void Removing_Child_Should_Invalidate_Grid_And_Be_Operational()
        {
            var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("*,Auto") };

            grid.Children.Add(new Decorator() { [Grid.ColumnProperty] = 0 });
            grid.Children.Add(new Decorator() { Width = 10, Height = 10, [Grid.ColumnProperty] = 1 });

            var size = new Size(100, 100);
            grid.Measure(size);
            grid.Arrange(new Rect(size));

            Assert.True(grid.IsMeasureValid);
            Assert.True(grid.IsArrangeValid);

            Assert.Equal(90, grid.Children[0].Bounds.Width);
            Assert.Equal(10, grid.Children[1].Bounds.Width);

            grid.Children.RemoveAt(1);


Review comment (suggestion):
```suggestion
            Change_Property_And_Verify_Measure_Requested(grid, () =>
```

Code after:
        {
            var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") };

            Change_Property_And_Verify_Measure_Requested(grid, () =>
            {
                grid.RowDefinitions = RowDefinitions.Parse("2*,1*");
            });
        }

        [Fact]
        public void Removing_Column_Should_Invalidate_Grid()
        {
            var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") };

            Change_Property_And_Verify_Measure_Requested(grid, () =>
            {
                grid.ColumnDefinitions.RemoveAt(0);
            });
        }

        [Fact]
        public void Removing_Row_Should_Invalidate_Grid()
        {
            var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") };

            Change_Property_And_Verify_Measure_Requested(grid, () =>
            {
                grid.RowDefinitions.RemoveAt(0);
            });
        }

        [Fact]
        public void Removing_Child_Should_Invalidate_Grid_And_Be_Operational()
        {
            var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("*,Auto") };

            grid.Children.Add(new Decorator() { [Grid.ColumnProperty] = 0 });
            grid.Children.Add(new Decorator() { Width = 10, Height = 10, [Grid.ColumnProperty] = 1 });

            var size = new Size(100, 100);
            grid.Measure(size);
            grid.Arrange(new Rect(size));

            Assert.True(grid.IsMeasureValid);
            Assert.True(grid.IsArrangeValid);

            Assert.Equal(90, grid.Children[0].Bounds.Width);
            Assert.Equal(10, grid.Children[1].Bounds.Width);

            grid.Children.RemoveAt(1);