From bcca8d86161b0fc50f6c808b4d7f07d831a1fa93 Mon Sep 17 00:00:00 2001 From: Andrey Ermilkin Date: Sun, 11 Apr 2021 16:29:37 -0400 Subject: [PATCH 1/2] Scaling Vector is not commutative --- tests/Avalonia.Visuals.UnitTests/VectorTests.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/Avalonia.Visuals.UnitTests/VectorTests.cs b/tests/Avalonia.Visuals.UnitTests/VectorTests.cs index 0e72cd7c7f..f9a9e59436 100644 --- a/tests/Avalonia.Visuals.UnitTests/VectorTests.cs +++ b/tests/Avalonia.Visuals.UnitTests/VectorTests.cs @@ -105,5 +105,15 @@ namespace Avalonia.Visuals.UnitTests Assert.Equal(expected, Vector.Multiply(vector, 2)); } + + [Fact] + public void Scale_Vector_Should_Be_Commutative() + { + var vector = new Vector(10, 2); + + var expected = vector * 2; + + Assert.Equal(expected, 2 * vector); + } } } From 323d975dad07a59fa286e75cc4d5cd05f5352d82 Mon Sep 17 00:00:00 2001 From: Andrey Ermilkin Date: Sun, 11 Apr 2021 16:34:12 -0400 Subject: [PATCH 2/2] Fixes Vector test for scale commutativeness. --- src/Avalonia.Visuals/Vector.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Avalonia.Visuals/Vector.cs b/src/Avalonia.Visuals/Vector.cs index 1b9f5c67d5..79c4202be4 100644 --- a/src/Avalonia.Visuals/Vector.cs +++ b/src/Avalonia.Visuals/Vector.cs @@ -82,6 +82,15 @@ namespace Avalonia public static Vector operator *(Vector vector, double scale) => Multiply(vector, scale); + /// + /// Scales a vector. + /// + /// The vector. + /// The scaling factor. + /// The scaled vector. + public static Vector operator *(double scale, Vector vector) + => Multiply(vector, scale); + /// /// Scales a vector. ///