diff --git a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj b/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj index 642172fe25..fd9fb82cfd 100644 --- a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj +++ b/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj @@ -80,6 +80,8 @@ + + diff --git a/tests/Avalonia.Visuals.UnitTests/RectTests.cs b/tests/Avalonia.Visuals.UnitTests/RectTests.cs new file mode 100644 index 0000000000..6e3f654bfb --- /dev/null +++ b/tests/Avalonia.Visuals.UnitTests/RectTests.cs @@ -0,0 +1,42 @@ +// Copyright (c) The Avalonia Project. All rights reserved. +// Licensed under the MIT license. See licence.md file in the project root for full license information. + +using Xunit; + +namespace Avalonia.Visuals.UnitTests +{ + public class RectTests + { + [Fact] + public void Union_Should_Return_Correct_Value_For_Intersecting_Rects() + { + var result = new Rect(0, 0, 100, 100).Union(new Rect(50, 50, 100, 100)); + + Assert.Equal(new Rect(0, 0, 150, 150), result); + } + + [Fact] + public void Union_Should_Return_Correct_Value_For_NonIntersecting_Rects() + { + var result = new Rect(0, 0, 100, 100).Union(new Rect(150, 150, 100, 100)); + + Assert.Equal(new Rect(0, 0, 250, 250), result); + } + + [Fact] + public void Union_Should_Ignore_Empty_This_rect() + { + var result = new Rect(0, 0, 0, 0).Union(new Rect(150, 150, 100, 100)); + + Assert.Equal(new Rect(150, 150, 100, 100), result); + } + + [Fact] + public void Union_Should_Ignore_Empty_Other_rect() + { + var result = new Rect(0, 0, 100, 100).Union(new Rect(150, 150, 0, 0)); + + Assert.Equal(new Rect(0, 0, 100, 100), result); + } + } +} diff --git a/tests/Avalonia.Visuals.UnitTests/SizeTests.cs b/tests/Avalonia.Visuals.UnitTests/SizeTests.cs new file mode 100644 index 0000000000..10a012bb7f --- /dev/null +++ b/tests/Avalonia.Visuals.UnitTests/SizeTests.cs @@ -0,0 +1,26 @@ +// Copyright (c) The Avalonia Project. All rights reserved. +// Licensed under the MIT license. See licence.md file in the project root for full license information. + +using Xunit; + +namespace Avalonia.Visuals.UnitTests +{ + public class SizeTests + { + [Fact] + public void Should_Produce_Correct_Aspect_Ratio() + { + var result = new Size(3, 2).AspectRatio; + + Assert.Equal(1.5, result); + } + + [Fact] + public void Dividing_Should_Produce_Scaling_Factor() + { + var result = new Size(15, 10) / new Size(5, 5); + + Assert.Equal(new Vector(3, 2), result); + } + } +}