summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core.UnitTests/PositionTests.cs
blob: aec845ed8516fa64bf2cc85a502dab79b4e9c6c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using System;
using NUnit.Framework;
using Xamarin.Forms.Maps;


namespace Xamarin.Forms.Core.UnitTests
{
	[TestFixture]
	public class PositionTests : BaseTestFixture
	{
		[Test]
		public void Construction ()
		{
			Position position = new Position();
			Assert.AreEqual (position.Latitude, 0);
			Assert.AreEqual (position.Longitude, 0);
		}

		[Test]
		public void CopyConstructor ()
		{
			var position = new Position (12, 13);
			var copy = position;

			Assert.AreEqual (12, copy.Latitude);
			Assert.AreEqual (13, copy.Longitude);
		}

		[Test]
		public void EqualityOp ()
		{
			var position1 = new Position (-28, 180);
			var position2 = new Position (-28, 180);
			Assert.True (position1 == position2);
		}

		[Test]
		public void InEqualityOp()
		{
			var position1 = new Position (-8, 180);
			var position2 = new Position (-28, 180);
			Assert.True(position1 != position2);
		}


		[Test]
		public void Equals ()
		{
			var position1 = new Position (78, 167);
			var position2 = new Position (78, 167);
			Assert.True (position1.Equals (position2));
			Assert.False (position2.Equals (null));
			Assert.True (position2.Equals (position2));
			Assert.False (position2.Equals ("position2"));
		}

		[Test]
		public void LatitudeClamping () {
			var position = new Position (-90.1, 0);
			Assert.AreEqual (position.Latitude, -90);

			position = new Position (165, 0);
			Assert.AreEqual (position.Latitude, 90);
	
			position = new Position (15.0, 0);
			Assert.AreEqual (position.Latitude, 15.0);
		}

		[Test]
		public void LongitudeClamping () {
			var position = new Position (0, -180.001);
			Assert.AreEqual (position.Longitude, -180.0);

			position = new Position (0, 1000);
			Assert.AreEqual (position.Longitude, 180);

			position = new Position (0, 0);
			Assert.AreEqual (position.Longitude, 0);
		}

		[Test]
		public void Hashcode ()
		{
			var position = new Position (20, 25);
			var position2 = new Position (25, 20);
			Assert.AreNotEqual (position.GetHashCode (), position2.GetHashCode ());
		}
	}
}