| 
					
				 | 
			
			
				@@ -0,0 +1,77 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using Xunit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+namespace Avalonia.Base.UnitTests; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class PixelSizeTests 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [Theory] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [MemberData(nameof(ParseArguments))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void Parse(string source, PixelSize expected, Exception exception) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Exception error = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PixelSize result = default; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result = PixelSize.Parse(source); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        catch (Exception ex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            error = ex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Assert.Equal(exception?.Message, error?.Message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Assert.Equal(expected, result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [Theory] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [MemberData(nameof(TryParseArguments))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void TryParse(string source, PixelSize? expected, Exception exception) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Exception error = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PixelSize result = PixelSize.Empty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PixelSize.TryParse(source, out result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        catch (Exception ex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            error = ex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Assert.Equal(exception?.Message, error?.Message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Assert.Equal(expected, result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static IEnumerable<object[]> ParseArguments() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        yield return new object[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "1024,768", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new PixelSize(1024, 768), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        yield return new object[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "1024x768", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            default(PixelSize), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new FormatException("Invalid PixelSize."), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static IEnumerable<object[]> TryParseArguments() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        yield return new object[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "1024,768", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            new PixelSize(1024, 768), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        yield return new object[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "1024x768", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PixelSize.Empty, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |