| 
					
				 | 
			
			
				@@ -96,6 +96,55 @@ namespace Avalonia.Visuals.UnitTests.Rendering 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Assert.Equal(new List<IVisual> { root, decorator, border, canvas }, result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [Fact] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void Should_Add_Dirty_Rect_On_Child_Remove() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var dispatcher = new ImmediateDispatcher(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var loop = new Mock<IRenderLoop>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Decorator decorator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Border border; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var root = new TestRoot 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Width = 100, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Height= 100, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Child = decorator = new Decorator 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Child = border = new Border 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Width = 50, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Height = 50, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Background = Brushes.Red, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            root.Measure(Size.Infinity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            root.Arrange(new Rect(root.DesiredSize)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var sceneBuilder = new SceneBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var target = new DeferredRenderer( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                root, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                loop.Object, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sceneBuilder: sceneBuilder, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dispatcher: dispatcher); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            root.Renderer = target; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            target.Start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            RunFrame(target); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            decorator.Child = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            RunFrame(target); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var scene = target.UnitTestScene(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var stackNode = scene.FindNode(decorator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var dirty = scene.Layers[0].Dirty.ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Assert.Equal(1, dirty.Count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Assert.Equal(new Rect(25, 25, 50, 50), dirty[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [Fact] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public void Should_Update_VisualNode_Order_On_Child_Remove_Insert() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 |