OSDN Git Service

球体ベースのENU座標とは別に,日本の平面直角座標を追加
[yubeshi/yubeshi.git] / YubeshiTest / EnuCoordinateTest.cs
index a9f1981..a8d524d 100755 (executable)
@@ -10,18 +10,17 @@ using System.Collections.Generic;
 using System.Text;\r
 using NUnit.Framework;\r
 using Yubeshi;\r
+using C = YubeshiTest.SampleCoordinates;\r
 \r
 namespace YubeshiTest\r
 {\r
     class EnuCoordinateTest\r
     {\r
-\r
+        private static double metreError = 1e-9; // 1nm\r
         [Test]\r
         public void ZeroDistance()\r
         {\r
-            GeodeticCoordinate c = \r
-                        new GeodeticCoordinate(35.710058, 139.810719, 634.0);\r
-            EnuCoordinate enu = new EnuCoordinate(c, c);\r
+            EnuCoordinate enu = new EnuCoordinate(C.SkyTreeTop, C.SkyTreeTop);\r
             Assert.AreEqual(0.0, enu.E);\r
             Assert.AreEqual(0.0, enu.N);\r
             Assert.AreEqual(0.0, enu.U);\r
@@ -30,24 +29,19 @@ namespace YubeshiTest
         [Test]\r
         public void UpOnly()\r
         {\r
-            GeodeticCoordinate c1 = \r
-                        new GeodeticCoordinate(35.710058, 139.810719, 634.0);\r
-            GeodeticCoordinate c2 =\r
-                        new GeodeticCoordinate(35.710058, 139.810719, 0.0);\r
-            EnuCoordinate enu = new EnuCoordinate(c1, c2);\r
+            EnuCoordinate enu = new EnuCoordinate(\r
+                                                C.SkyTreeTop, C.SkyTreeBottom);\r
 \r
-            Assert.AreEqual(0.0, enu.E, 1e-9);\r
-            Assert.AreEqual(0.0, enu.N, 1e-9);\r
-            Assert.AreEqual(634.0, enu.U, 1e-9);\r
+            Assert.AreEqual(0.0, enu.E, metreError);\r
+            Assert.AreEqual(0.0, enu.N, metreError);\r
+            Assert.AreEqual(634.0, enu.U, metreError);\r
         }\r
 \r
         [Test]\r
         public void TwoPoints()\r
         {\r
-            GeodeticCoordinate c1 =\r
-                        new GeodeticCoordinate(35.710058, 139.810719, 634.0);\r
-            GeodeticCoordinate c2 =\r
-                        new GeodeticCoordinate(35.658611, 139.745556, 351.0);\r
+            GeodeticCoordinate c1 = C.SkyTreeTop;\r
+            GeodeticCoordinate c2 = C.TokyoTowerTop;\r
             GeodeticCoordinate c0 = new GeodeticCoordinate(\r
                                         0.5 * (c1.Latitude + c2.Latitude),\r
                                         0.5 * (c1.Longitude + c2.Longitude),\r
@@ -70,5 +64,18 @@ namespace YubeshiTest
             Assert.AreEqual(45.946, direction, 1.0 / 60.0);\r
             Assert.AreEqual(283.0, du, 1e-3);\r
         }\r
+\r
+        [Test]\r
+        public void ToEcefCoordinate()\r
+        {\r
+            EnuCoordinate enu = new EnuCoordinate(\r
+                                            C.SkyTreeTop, C.TokyoTowerTop);\r
+            EcefCoordinate ecef1 = enu.ToEcefCoordinate();\r
+            EcefCoordinate ecef2 = C.SkyTreeTop.ToEcefCoordinate();\r
+\r
+            Assert.AreEqual(ecef2.X, ecef1.X, metreError);\r
+            Assert.AreEqual(ecef2.Y, ecef1.Y, metreError);\r
+            Assert.AreEqual(ecef2.Z, ecef1.Z, metreError);\r
+        }\r
     }\r
 }\r