From d1959f4ba6a566e11bdff64ca94e1dc831d1609d Mon Sep 17 00:00:00 2001 From: Oliver Booth Date: Mon, 27 Feb 2023 17:05:59 +0000 Subject: [PATCH] [ci skip] Add unit tests for IsOnLine --- X10D.Tests/src/Numerics/Vector2Tests.cs | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/X10D.Tests/src/Numerics/Vector2Tests.cs b/X10D.Tests/src/Numerics/Vector2Tests.cs index 5181156..941b13f 100644 --- a/X10D.Tests/src/Numerics/Vector2Tests.cs +++ b/X10D.Tests/src/Numerics/Vector2Tests.cs @@ -1,6 +1,7 @@ using System.Numerics; using Microsoft.VisualStudio.TestTools.UnitTesting; using X10D.Core; +using X10D.Drawing; using X10D.Numerics; namespace X10D.Tests.Numerics; @@ -18,6 +19,32 @@ public class Vector2Tests Assert.AreEqual(2, y); } + [TestMethod] + public void IsOnLine_ShouldReturnTrue_ForPointOnLine() + { + Vector2 start = Vector2.Zero; + Vector2 end = Vector2.UnitX; + Vector2 point = new Vector2(0.5f, 0.0f); + var line = new LineF(start, end); + + Assert.IsTrue(point.IsOnLine(line)); + Assert.IsTrue(point.IsOnLine(line.Start, line.End)); + Assert.IsTrue(point.IsOnLine(line.Start.ToVector2(), line.End.ToVector2())); + } + + [TestMethod] + public void IsOnLine_ShouldReturnFalse_ForPointNotOnLine() + { + Vector2 start = Vector2.Zero; + Vector2 end = Vector2.UnitX; + Vector2 point = new Vector2(0.5f, 1.0f); + var line = new LineF(start, end); + + Assert.IsFalse(point.IsOnLine(line)); + Assert.IsFalse(point.IsOnLine(line.Start, line.End)); + Assert.IsFalse(point.IsOnLine(line.Start.ToVector2(), line.End.ToVector2())); + } + [TestMethod] public void Round_ShouldRoundToNearestInteger_GivenNoParameters() {