summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core.UnitTests/PointTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Core.UnitTests/PointTests.cs')
-rw-r--r--Xamarin.Forms.Core.UnitTests/PointTests.cs121
1 files changed, 121 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/PointTests.cs b/Xamarin.Forms.Core.UnitTests/PointTests.cs
new file mode 100644
index 00000000..40a31b81
--- /dev/null
+++ b/Xamarin.Forms.Core.UnitTests/PointTests.cs
@@ -0,0 +1,121 @@
+using System;
+using NUnit.Framework;
+
+
+namespace Xamarin.Forms.Core.UnitTests
+{
+ [TestFixture]
+ public class PointTests : BaseTestFixture
+ {
+ [Test]
+ public void TestPointEquality ()
+ {
+ Assert.True (new Point (0, 1) != new Point (1, 0));
+ Assert.True (new Point (5, 5) == new Point (5, 5));
+ }
+
+ [Test]
+ public void TestPointDistance ()
+ {
+ Assert.That (new Point (2, 2).Distance (new Point (5, 6)), Is.EqualTo (5).Within (0.001));
+ }
+
+ [Test]
+ public void TestPointMath ()
+ {
+ var point = new Point (2, 3) + new Size (3, 2);
+ Assert.AreEqual (new Point (5, 5), point);
+
+ point = new Point (3, 4) - new Size (2, 3);
+ Assert.AreEqual (new Point (1, 1), point);
+ }
+
+ [Test]
+ public void TestPointFromSize ()
+ {
+ var point = new Point (new Size (10, 20));
+
+ Assert.AreEqual (10, point.X);
+ Assert.AreEqual (20, point.Y);
+ }
+
+ [Test]
+ public void TestPointOffset ()
+ {
+ var point = new Point (2, 2);
+
+ point = point.Offset (10, 20);
+
+ Assert.AreEqual (new Point (12, 22), point);
+ }
+
+ [Test]
+ public void TestPointRound ()
+ {
+ var point = new Point (2.4, 2.7);
+ point = point.Round ();
+
+ Assert.AreEqual (Math.Round (2.4), point.X);
+ Assert.AreEqual (Math.Round (2.7), point.Y);
+ }
+
+ [Test]
+ public void TestPointEmpty ()
+ {
+ var point = new Point ();
+
+ Assert.True (point.IsEmpty);
+ }
+
+ [Test]
+ public void TestPointHashCode ([Range (3, 6)] double x1, [Range (3, 6)] double y1, [Range (3, 6)] double x2,
+ [Range (3, 6)] double y2)
+ {
+ bool result = new Point (x1, y1).GetHashCode () == new Point (x2, y2).GetHashCode ();
+ if (x1 == x2 && y1 == y2)
+ Assert.True (result);
+ else
+ Assert.False (result);
+ }
+
+ [Test]
+ public void TestSizeFromPoint ()
+ {
+ var point = new Point (2, 4);
+ var size = (Size) point;
+
+ Assert.AreEqual (new Size (2, 4), size);
+ }
+
+ [Test]
+ public void TestPointEquals ()
+ {
+ var point = new Point (2, 4);
+
+ Assert.True (point.Equals (new Point (2, 4)));
+ Assert.False (point.Equals (new Point (3, 4)));
+ Assert.False (point.Equals ("Point"));
+ }
+
+ [Test]
+ [TestCase (0, 0, ExpectedResult = "{X=0 Y=0}")]
+ [TestCase (5, 2, ExpectedResult = "{X=5 Y=2}")]
+ public string TestPointToString (double x, double y)
+ {
+ return new Point (x, y).ToString ();
+ }
+
+ [Test]
+ public void TestPointTypeConverter ()
+ {
+ var converter = new PointTypeConverter ();
+ Assert.True (converter.CanConvertFrom (typeof(string)));
+ Assert.AreEqual (new Point (1, 2), converter.ConvertFromInvariantString ("1,2"));
+ Assert.AreEqual (new Point (1, 2), converter.ConvertFromInvariantString ("1, 2"));
+ Assert.AreEqual (new Point (1, 2), converter.ConvertFromInvariantString (" 1 , 2 "));
+ Assert.AreEqual (new Point (1.1, 2), converter.ConvertFromInvariantString ("1.1,2"));
+ Assert.Throws<InvalidOperationException> (()=>converter.ConvertFromInvariantString (""));
+ }
+
+ }
+}