A Discrete-Event Network Simulator
API
geo-to-cartesian-test.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2014 University of Washington
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Benjamin Cizdziel <ben.cizdziel@gmail.com>
19  */
20 
21 #include <ns3/test.h>
22 #include <ns3/log.h>
23 #include <ns3/geographic-positions.h>
24 
37 NS_LOG_COMPONENT_DEFINE ("GeoToCartesianTest");
38 
39 using namespace ns3;
40 
41 // 10 meter tolerance for testing, which is very small with respect to ECEF
42 // Cartesian coordinates on or above earth's surface
43 const double TOLERANCE = 10;
44 
45 const double XSPHERE_MATLAB[216] = {6371000, 1968747.27116279, -5154247.27116279,
46 -5154247.27116279, 1968747.27116279, 6371000, 1968747.27116279, 608376.364418605,
47 -1592750, -1592750.00000000, 608376.364418605, 1968747.27116279,
48 -5154247.27116279, -1592750, 4169873.63558139, 4169873.63558139,
49 -1592750.00000000, -5154247.27116279, -5154247.27116279, -1592750.00000000,
50 4169873.63558139, 4169873.63558140, -1592750.00000000, -5154247.27116279,
51 1968747.27116279, 608376.364418605, -1592750.00000000, -1592750.00000000,
52 608376.364418604, 1968747.27116279, 6371000, 1968747.27116279, -5154247.27116279,
53 -5154247.27116279, 1968747.27116279, 6371000, 6371200, 1968809.07456167,
54 -5154409.07456167, -5154409.07456167, 1968809.07456166, 6371200, 1968809.07456167,
55 608395.462719168, -1592800, -1592800.00000000, 608395.462719167, 1968809.07456167,
56 -5154409.07456167, -1592800, 4170004.53728083, 4170004.53728083,
57 -1592800.00000000, -5154409.07456167, -5154409.07456167, -1592800,
58 4170004.53728083, 4170004.53728083, -1592800.00000000, -5154409.07456167,
59 1968809.07456166, 608395.462719167, -1592800.00000000, -1592800.00000000,
60 608395.462719167, 1968809.07456166, 6371200, 1968809.07456167, -5154409.07456167,
61 -5154409.07456167, 1968809.07456166, 6371200, 6371400, 1968870.87796054,
62 -5154570.87796054, -5154570.87796054, 1968870.87796054, 6371400, 1968870.87796054,
63 608414.561019730, -1592850, -1592850.00000000, 608414.561019730, 1968870.87796054,
64 -5154570.87796054, -1592850, 4170135.43898027, 4170135.43898027,
65 -1592850.00000000, -5154570.87796054, -5154570.87796054, -1592850.00000000,
66 4170135.43898027, 4170135.43898027, -1592850.00000000, -5154570.87796054,
67 1968870.87796054, 608414.561019730, -1592850.00000000, -1592850.00000000,
68 608414.561019729, 1968870.87796054, 6371400, 1968870.87796054, -5154570.87796054,
69 -5154570.87796054, 1968870.87796054, 6371400, 6371600, 1968932.68135942,
70 -5154732.68135941, -5154732.68135942, 1968932.68135941, 6371600,
71 1968932.68135942, 608433.659320293, -1592900, -1592900.00000000, 608433.659320292,
72 1968932.68135942, -5154732.68135941, -1592900.00000000, 4170266.34067971,
73 4170266.34067971, -1592900.00000000, -5154732.68135941, -5154732.68135942,
74 -1592900.00000000, 4170266.34067971, 4170266.34067971, -1592900.00000000,
75 -5154732.68135942, 1968932.68135941, 608433.659320292, -1592900.00000000,
76 -1592900.00000000, 608433.659320292, 1968932.68135941, 6371600, 1968932.68135942,
77 -5154732.68135941, -5154732.68135942, 1968932.68135941, 6371600, 6371800,
78 1968994.48475829, -5154894.48475829, -5154894.48475829, 1968994.48475829,
79 6371800, 1968994.48475829, 608452.757620855, -1592950, -1592950.00000000,
80 608452.757620855, 1968994.48475829, -5154894.48475829, -1592950, 4170397.24237914,
81 4170397.24237914, -1592950.00000000, -5154894.48475829, -5154894.48475829,
82 -1592950.00000000, 4170397.24237914, 4170397.24237915, -1592950.00000000,
83 -5154894.48475829, 1968994.48475829, 608452.757620855, -1592950.00000000,
84 -1592950.00000000, 608452.757620854, 1968994.48475829, 6371800, 1968994.48475829,
85 -5154894.48475829, -5154894.48475829, 1968994.48475829, 6371800, 6372000,
86 1969056.28815717, -5155056.28815716, -5155056.28815717, 1969056.28815716,
87 6372000, 1969056.28815717, 608471.855921418, -1593000, -1593000, 608471.855921417,
88 1969056.28815717, -5155056.28815716, -1593000.00000000, 4170528.14407858,
89 4170528.14407858, -1593000.00000000, -5155056.28815716, -5155056.28815717,
90 -1593000.00000000, 4170528.14407858, 4170528.14407858, -1593000.00000000,
91 -5155056.28815717, 1969056.28815716, 608471.855921417, -1593000.00000000,
92 -1593000.00000000, 608471.855921417, 1969056.28815716, 6372000, 1969056.28815717,
93 -5155056.28815716, -5155056.28815717, 1969056.28815716, 6372000};
94 
95 const double YSPHERE_MATLAB[216] = {0, 6059181.06531642, 3744779.84235535,
96 -3744779.84235535, -6059181.06531642, -1.56044495147356e-09, 0, 1872389.92117767,
97 1157200.61148054, -1157200.61148054, -1872389.92117767, -4.82204008791920e-10, 0,
98 -4901980.45383588, -3029590.53265821, 3029590.53265821, 4901980.45383588,
99 1.26242648452870e-09, 0, -4901980.45383589, -3029590.53265821, 3029590.53265821,
100 4901980.45383589, 1.26242648452870e-09, 0, 1872389.92117767, 1157200.61148054,
101 -1157200.61148054, -1872389.92117767, -4.82204008791919e-10, 0, 6059181.06531642,
102 3744779.84235535, -3744779.84235535, -6059181.06531642, -1.56044495147356e-09, 0,
103 6059371.27661968, 3744897.39940581, -3744897.39940580, -6059371.27661968,
104 -1.56049393734552e-09, 0, 1872448.69970290, 1157236.93860694, -1157236.93860694,
105 -1872448.69970290, -4.82219146258841e-10, 0, -4902134.33801274, -3029685.63830984,
106 3029685.63830984, 4902134.33801274, 1.26246611493160e-09, 0, -4902134.33801274,
107 -3029685.63830984, 3029685.63830984, 4902134.33801274, 1.26246611493160e-09, 0,
108 1872448.69970290, 1157236.93860694, -1157236.93860694, -1872448.69970290,
109 -4.82219146258841e-10, 0, 6059371.27661968, 3744897.39940581, -3744897.39940580,
110 -6059371.27661968, -1.56049393734552e-09, 0, 6059561.48792294, 3745014.95645626,
111 -3745014.95645626, -6059561.48792294, -1.56054292321749e-09, 0, 1872507.47822813,
112 1157273.26573334, -1157273.26573334, -1872507.47822813, -4.82234283725763e-10, 0,
113 -4902288.22218960, -3029780.74396147, 3029780.74396147, 4902288.22218960,
114 1.26250574533451e-09, 0, -4902288.22218960, -3029780.74396147, 3029780.74396147,
115 4902288.22218960, 1.26250574533451e-09, 0, 1872507.47822813, 1157273.26573334,
116 -1157273.26573334, -1872507.47822813, -4.82234283725763e-10, 0, 6059561.48792294,
117 3745014.95645626, -3745014.95645626, -6059561.48792294, -1.56054292321749e-09, 0,
118 6059751.69922620, 3745132.51350672, -3745132.51350672, -6059751.69922620,
119 -1.56059190908946e-09, 0, 1872566.25675336, 1157309.59285974, -1157309.59285974,
120 -1872566.25675336, -4.82249421192685e-10, 0, -4902442.10636646, -3029875.84961310,
121 3029875.84961310, 4902442.10636646, 1.26254537573741e-09, 0, -4902442.10636646,
122 -3029875.84961310, 3029875.84961310, 4902442.10636646, 1.26254537573741e-09, 0,
123 1872566.25675336, 1157309.59285974, -1157309.59285974, -1872566.25675336,
124 -4.82249421192684e-10, 0, 6059751.69922620, 3745132.51350672, -3745132.51350672,
125 -6059751.69922620, -1.56059190908946e-09, 0, 6059941.91052946, 3745250.07055718,
126 -3745250.07055718, -6059941.91052946, -1.56064089496142e-09, 0, 1872625.03527859,
127 1157345.91998614, -1157345.91998614, -1872625.03527859, -4.82264558659606e-10, 0,
128 -4902595.99054332, -3029970.95526473, 3029970.95526473, 4902595.99054332,
129 1.26258500614032e-09, 0, -4902595.99054332, -3029970.95526473, 3029970.95526473,
130 4902595.99054332, 1.26258500614032e-09, 0, 1872625.03527859, 1157345.91998614,
131 -1157345.91998614, -1872625.03527859, -4.82264558659606e-10, 0, 6059941.91052946,
132 3745250.07055718, -3745250.07055718, -6059941.91052946, -1.56064089496142e-09, 0,
133 6060132.12183272, 3745367.62760764, -3745367.62760764, -6060132.12183272,
134 -1.56068988083339e-09, 0, 1872683.81380382, 1157382.24711254, -1157382.24711254,
135 -1872683.81380382, -4.82279696126528e-10, 0, -4902749.87472018, -3030066.06091636,
136 3030066.06091636, 4902749.87472018, 1.26262463654322e-09, 0, -4902749.87472018,
137 -3030066.06091636, 3030066.06091636, 4902749.87472018, 1.26262463654322e-09, 0,
138 1872683.81380382, 1157382.24711254, -1157382.24711254, -1872683.81380382,
139 -4.82279696126528e-10, 0, 6060132.12183272, 3745367.62760764, -3745367.62760764,
140 -6060132.12183272, -1.56068988083339e-09};
141 
142 const double ZSPHERE_MATLAB[216] = {0, 0, 0, 0, 0, 0, 6059181.06531642,
143 6059181.06531642, 6059181.06531642, 6059181.06531642, 6059181.06531642,
144 6059181.06531642, 3744779.84235535, 3744779.84235535, 3744779.84235535,
145 3744779.84235535, 3744779.84235535, 3744779.84235535, -3744779.84235535,
146 -3744779.84235535, -3744779.84235535, -3744779.84235535, -3744779.84235535,
147 -3744779.84235535, -6059181.06531642, -6059181.06531642, -6059181.06531642,
148 -6059181.06531642, -6059181.06531642, -6059181.06531642, -1.56044495147356e-09,
149 -1.56044495147356e-09, -1.56044495147356e-09, -1.56044495147356e-09,
150 -1.56044495147356e-09, -1.56044495147356e-09, 0, 0, 0, 0, 0, 0, 6059371.27661968,
151 6059371.27661968, 6059371.27661968, 6059371.27661968, 6059371.27661968,
152 6059371.27661968, 3744897.39940581, 3744897.39940581, 3744897.39940581,
153 3744897.39940581, 3744897.39940581, 3744897.39940581, -3744897.39940580,
154 -3744897.39940580, -3744897.39940580, -3744897.39940580, -3744897.39940580,
155 -3744897.39940580, -6059371.27661968, -6059371.27661968, -6059371.27661968,
156 -6059371.27661968, -6059371.27661968, -6059371.27661968, -1.56049393734552e-09,
157 -1.56049393734552e-09, -1.56049393734552e-09, -1.56049393734552e-09,
158 -1.56049393734552e-09, -1.56049393734552e-09, 0, 0, 0, 0, 0, 0, 6059561.48792294,
159 6059561.48792294, 6059561.48792294, 6059561.48792294, 6059561.48792294,
160 6059561.48792294, 3745014.95645626, 3745014.95645626, 3745014.95645626,
161 3745014.95645626, 3745014.95645626, 3745014.95645626, -3745014.95645626,
162 -3745014.95645626, -3745014.95645626, -3745014.95645626, -3745014.95645626,
163 -3745014.95645626, -6059561.48792294, -6059561.48792294, -6059561.48792294,
164 -6059561.48792294, -6059561.48792294, -6059561.48792294, -1.56054292321749e-09,
165 -1.56054292321749e-09, -1.56054292321749e-09, -1.56054292321749e-09,
166 -1.56054292321749e-09, -1.56054292321749e-09, 0, 0, 0, 0, 0, 0, 6059751.69922620,
167 6059751.69922620, 6059751.69922620, 6059751.69922620, 6059751.69922620,
168 6059751.69922620, 3745132.51350672, 3745132.51350672, 3745132.51350672,
169 3745132.51350672, 3745132.51350672, 3745132.51350672, -3745132.51350672,
170 -3745132.51350672, -3745132.51350672, -3745132.51350672, -3745132.51350672,
171 -3745132.51350672, -6059751.69922620, -6059751.69922620, -6059751.69922620,
172 -6059751.69922620, -6059751.69922620, -6059751.69922620, -1.56059190908946e-09,
173 -1.56059190908946e-09, -1.56059190908946e-09, -1.56059190908946e-09,
174 -1.56059190908946e-09, -1.56059190908946e-09, 0, 0, 0, 0, 0, 0, 6059941.91052946,
175 6059941.91052946, 6059941.91052946, 6059941.91052946, 6059941.91052946,
176 6059941.91052946, 3745250.07055718, 3745250.07055718, 3745250.07055718,
177 3745250.07055718, 3745250.07055718, 3745250.07055718, -3745250.07055718,
178 -3745250.07055718, -3745250.07055718, -3745250.07055718, -3745250.07055718,
179 -3745250.07055718, -6059941.91052946, -6059941.91052946, -6059941.91052946,
180 -6059941.91052946, -6059941.91052946, -6059941.91052946, -1.56064089496142e-09,
181 -1.56064089496142e-09, -1.56064089496142e-09, -1.56064089496142e-09,
182 -1.56064089496142e-09, -1.56064089496142e-09, 0, 0, 0, 0, 0, 0, 6060132.12183272,
183 6060132.12183272, 6060132.12183272, 6060132.12183272, 6060132.12183272,
184 6060132.12183272, 3745367.62760764, 3745367.62760764, 3745367.62760764,
185 3745367.62760764, 3745367.62760764, 3745367.62760764, -3745367.62760764,
186 -3745367.62760764, -3745367.62760764, -3745367.62760764, -3745367.62760764,
187 -3745367.62760764, -6060132.12183272, -6060132.12183272, -6060132.12183272,
188 -6060132.12183272, -6060132.12183272, -6060132.12183272, -1.56068988083339e-09,
189 -1.56068988083339e-09, -1.56068988083339e-09, -1.56068988083339e-09,
190 -1.56068988083339e-09, -1.56068988083339e-09};
191 
192 const double XGRS80_MATLAB[216] = {6378137, 1970952.72545164, -5160021.22545164,
193 -5160021.22545164, 1970952.72545164, 6378137, 1976947.14312992, 610910.264208145,
194 -1599383.83577310, -1599383.83577310, 610910.264208145, 1976947.14312992,
195 -5165998.77753988, -1596381.41518003, 4179380.80394997, 4179380.80394997,
196 -1596381.41518003, -5165998.77753988, -5165998.77753988, -1596381.41518003,
197 4179380.80394997, 4179380.80394997, -1596381.41518003, -5165998.77753988,
198 1976947.14312991, 610910.264208145, -1599383.83577310, -1599383.83577310,
199 610910.264208145, 1976947.14312991, 6378137, 1970952.72545164, -5160021.22545164,
200 -5160021.22545164, 1970952.72545164, 6378137, 6378337, 1971014.52885052,
201 -5160183.02885052, -5160183.02885052, 1971014.52885052, 6378337, 1977008.94652879,
202 610929.362508708, -1599433.83577310, -1599433.83577310, 610929.362508708,
203 1977008.94652879, -5166160.58093876, -1596431.41518003, 4179511.70564940,
204 4179511.70564940, -1596431.41518003, -5166160.58093876, -5166160.58093876,
205 -1596431.41518003, 4179511.70564940, 4179511.70564940, -1596431.41518003,
206 -5166160.58093876, 1977008.94652879, 610929.362508708, -1599433.83577310,
207 -1599433.83577310, 610929.362508707, 1977008.94652879, 6378337, 1971014.52885052,
208 -5160183.02885052, -5160183.02885052, 1971014.52885052, 6378337, 6378537,
209 1971076.33224939, -5160344.83224939, -5160344.83224940, 1971076.33224939,
210 6378537, 1977070.74992767, 610948.460809271, -1599483.83577310, -1599483.83577310,
211 610948.460809270, 1977070.74992767, -5166322.38433763, -1596481.41518003,
212 4179642.60734884, 4179642.60734884, -1596481.41518003, -5166322.38433763,
213 -5166322.38433763, -1596481.41518003, 4179642.60734884, 4179642.60734884,
214 -1596481.41518003, -5166322.38433763, 1977070.74992766, 610948.460809270,
215 -1599483.83577310, -1599483.83577310, 610948.460809270, 1977070.74992766,
216 6378537, 1971076.33224939, -5160344.83224939, -5160344.83224940, 1971076.33224939,
217 6378537, 6378737, 1971138.13564827, -5160506.63564827, -5160506.63564827,
218 1971138.13564827, 6378737, 1977132.55332654, 610967.559109833, -1599533.83577310,
219 -1599533.83577310, 610967.559109833, 1977132.55332654, -5166484.18773651,
220 -1596531.41518003, 4179773.50904828, 4179773.50904828, -1596531.41518003,
221 -5166484.18773651, -5166484.18773651, -1596531.41518003, 4179773.50904828,
222 4179773.50904828, -1596531.41518003, -5166484.18773651, 1977132.55332654,
223 610967.559109833, -1599533.83577310, -1599533.83577310, 610967.559109832,
224 1977132.55332654, 6378737, 1971138.13564827, -5160506.63564827, -5160506.63564827,
225 1971138.13564827, 6378737, 6378937, 1971199.93904714, -5160668.43904714,
226 -5160668.43904714, 1971199.93904714, 6378937, 1977194.35672542, 610986.657410395,
227 -1599583.83577310, -1599583.83577310, 610986.657410395, 1977194.35672542,
228 -5166645.99113538, -1596581.41518003, 4179904.41074772, 4179904.41074772,
229 -1596581.41518003, -5166645.99113538, -5166645.99113538, -1596581.41518003,
230 4179904.41074772, 4179904.41074772, -1596581.41518003, -5166645.99113538,
231 1977194.35672541, 610986.657410395, -1599583.83577310, -1599583.83577310,
232 610986.657410395, 1977194.35672541, 6378937, 1971199.93904714, -5160668.43904714,
233 -5160668.43904714, 1971199.93904714, 6378937, 6379137, 1971261.74244602,
234 -5160830.24244602, -5160830.24244602, 1971261.74244602, 6379137, 1977256.16012429,
235 611005.755710958, -1599633.83577310, -1599633.83577310, 611005.755710958,
236 1977256.16012429, -5166807.79453425, -1596631.41518003, 4180035.31244715,
237 4180035.31244715, -1596631.41518003, -5166807.79453425, -5166807.79453426,
238 -1596631.41518003, 4180035.31244715, 4180035.31244715, -1596631.41518003,
239 -5166807.79453426, 1977256.16012429, 611005.755710958, -1599633.83577310,
240 -1599633.83577310, 611005.755710957, 1977256.16012429, 6379137, 1971261.74244602,
241 -5160830.24244602, -5160830.24244602, 1971261.74244602, 6379137};
242 
243 const double YGRS80_MATLAB[216] = {0, 6065968.75567322, 3748974.86570096,
244 -3748974.86570096, -6065968.75567322, -1.56219301231466e-09, 0, 1880188.46284479,
245 1162020.37529350, -1162020.37529350, -1880188.46284479, -4.84212398183511e-10, 0,
246 -4913156.80055210, -3036497.89479889, 3036497.89479889, 4913156.80055210,
247 1.26530477346267e-09, 0, -4913156.80055210, -3036497.89479889, 3036497.89479889,
248 4913156.80055210, 1.26530477346267e-09, 0, 1880188.46284479, 1162020.37529350,
249 -1162020.37529350, -1880188.46284479, -4.84212398183511e-10, 0, 6065968.75567322,
250 3748974.86570096, -3748974.86570096, -6065968.75567322, -1.56219301231466e-09, 0,
251 6066158.96697648, 3749092.42275142, -3749092.42275142, -6066158.96697648,
252 -1.56224199818663e-09, 0, 1880247.24137002, 1162056.70241990, -1162056.70241990,
253 -1880247.24137002, -4.84227535650433e-10, 0, -4913310.68472896, -3036593.00045052,
254 3036593.00045051, 4913310.68472896, 1.26534440386558e-09, 0, -4913310.68472896,
255 -3036593.00045052, 3036593.00045051, 4913310.68472896, 1.26534440386558e-09, 0,
256 1880247.24137002, 1162056.70241990, -1162056.70241990, -1880247.24137002,
257 -4.84227535650433e-10, 0, 6066158.96697648, 3749092.42275142, -3749092.42275142,
258 -6066158.96697648, -1.56224199818663e-09, 0, 6066349.17827974, 3749209.97980188,
259 -3749209.97980187, -6066349.17827974, -1.56229098405859e-09, 0, 1880306.01989525,
260 1162093.02954630, -1162093.02954630, -1880306.01989525, -4.84242673117355e-10, 0,
261 -4913464.56890582, -3036688.10610215, 3036688.10610214, 4913464.56890582,
262 1.26538403426848e-09, 0, -4913464.56890582, -3036688.10610215, 3036688.10610215,
263 4913464.56890582, 1.26538403426848e-09, 0, 1880306.01989525, 1162093.02954630,
264 -1162093.02954630, -1880306.01989525, -4.84242673117354e-10, 0, 6066349.17827974,
265 3749209.97980188, -3749209.97980187, -6066349.17827974, -1.56229098405859e-09, 0,
266 6066539.38958300, 3749327.53685233, -3749327.53685233, -6066539.38958300,
267 -1.56233996993056e-09, 0, 1880364.79842048, 1162129.35667270, -1162129.35667270,
268 -1880364.79842048, -4.84257810584276e-10, 0, -4913618.45308268, -3036783.21175378,
269 3036783.21175377, 4913618.45308268, 1.26542366467138e-09, 0, -4913618.45308268,
270 -3036783.21175378, 3036783.21175377, 4913618.45308268, 1.26542366467138e-09, 0,
271 1880364.79842048, 1162129.35667270, -1162129.35667270, -1880364.79842048,
272 -4.84257810584276e-10, 0, 6066539.38958300, 3749327.53685233, -3749327.53685233,
273 -6066539.38958300, -1.56233996993056e-09, 0, 6066729.60088626, 3749445.09390279,
274 -3749445.09390279, -6066729.60088626, -1.56238895580252e-09, 0, 1880423.57694571,
275 1162165.68379910, -1162165.68379910, -1880423.57694571, -4.84272948051198e-10, 0,
276 -4913772.33725954, -3036878.31740540, 3036878.31740540, 4913772.33725954,
277 1.26546329507429e-09, 0, -4913772.33725954, -3036878.31740541, 3036878.31740540,
278 4913772.33725954, 1.26546329507429e-09, 0, 1880423.57694571, 1162165.68379910,
279 -1162165.68379910, -1880423.57694571, -4.84272948051198e-10, 0, 6066729.60088626,
280 3749445.09390279, -3749445.09390279, -6066729.60088626, -1.56238895580252e-09, 0,
281 6066919.81218952, 3749562.65095325, -3749562.65095325, -6066919.81218952,
282 -1.56243794167449e-09, 0, 1880482.35547094, 1162202.01092550, -1162202.01092550,
283 -1880482.35547094, -4.84288085518120e-10, 0, -4913926.22143639, -3036973.42305703,
284 3036973.42305703, 4913926.22143639, 1.26550292547719e-09, 0, -4913926.22143639,
285 -3036973.42305703, 3036973.42305703, 4913926.22143639, 1.26550292547719e-09, 0,
286 1880482.35547094, 1162202.01092550, -1162202.01092550, -1880482.35547094,
287 -4.84288085518119e-10, 0, 6066919.81218952, 3749562.65095325, -3749562.65095325,
288 -6066919.81218952, -1.56243794167449e-09};
289 
290 const double ZGRS80_MATLAB[216] = {0, 0, 0, 0, 0, 0, 6043686.27213354,
291 6043686.27213354, 6043686.27213354, 6043686.27213354, 6043686.27213354,
292 6043686.27213354, 3728191.67572948, 3728191.67572948, 3728191.67572948,
293 3728191.67572948, 3728191.67572948, 3728191.67572948, -3728191.67572948,
294 -3728191.67572948, -3728191.67572948, -3728191.67572948, -3728191.67572948,
295 -3728191.67572948, -6043686.27213354, -6043686.27213354, -6043686.27213354,
296 -6043686.27213354, -6043686.27213354, -6043686.27213354, -1.55173509862111e-09,
297 -1.55173509862111e-09, -1.55173509862111e-09, -1.55173509862111e-09,
298 -1.55173509862111e-09, -1.55173509862111e-09, 0, 0, 0, 0, 0, 0, 6043876.48343680,
299 6043876.48343680, 6043876.48343680, 6043876.48343680, 6043876.48343680,
300 6043876.48343680, 3728309.23277994, 3728309.23277994, 3728309.23277994,
301 3728309.23277994, 3728309.23277994, 3728309.23277994, -3728309.23277994,
302 -3728309.23277994, -3728309.23277994, -3728309.23277994, -3728309.23277994,
303 -3728309.23277994, -6043876.48343680, -6043876.48343680, -6043876.48343680,
304 -6043876.48343680, -6043876.48343680, -6043876.48343680, -1.55178408449307e-09,
305 -1.55178408449307e-09, -1.55178408449307e-09, -1.55178408449307e-09,
306 -1.55178408449307e-09, -1.55178408449307e-09, 0, 0, 0, 0, 0, 0, 6044066.69474006,
307 6044066.69474006, 6044066.69474006, 6044066.69474006, 6044066.69474006,
308 6044066.69474006, 3728426.78983040, 3728426.78983040, 3728426.78983040,
309 3728426.78983040, 3728426.78983040, 3728426.78983040, -3728426.78983040,
310 -3728426.78983040, -3728426.78983040, -3728426.78983040, -3728426.78983040,
311 -3728426.78983040, -6044066.69474006, -6044066.69474006, -6044066.69474006,
312 -6044066.69474006, -6044066.69474006, -6044066.69474006, -1.55183307036504e-09,
313 -1.55183307036504e-09, -1.55183307036504e-09, -1.55183307036504e-09,
314 -1.55183307036504e-09, -1.55183307036504e-09, 0, 0, 0, 0, 0, 0, 6044256.90604332,
315 6044256.90604332, 6044256.90604332, 6044256.90604332, 6044256.90604332,
316 6044256.90604332, 3728544.34688086, 3728544.34688086, 3728544.34688086,
317 3728544.34688086, 3728544.34688086, 3728544.34688086, -3728544.34688086,
318 -3728544.34688086, -3728544.34688086, -3728544.34688086, -3728544.34688086,
319 -3728544.34688086, -6044256.90604332, -6044256.90604332, -6044256.90604332,
320 -6044256.90604332, -6044256.90604332, -6044256.90604332, -1.55188205623700e-09,
321 -1.55188205623700e-09, -1.55188205623700e-09, -1.55188205623700e-09,
322 -1.55188205623700e-09, -1.55188205623700e-09, 0, 0, 0, 0, 0, 0, 6044447.11734658,
323 6044447.11734658, 6044447.11734658, 6044447.11734658, 6044447.11734658,
324 6044447.11734658, 3728661.90393132, 3728661.90393132, 3728661.90393132,
325 3728661.90393132, 3728661.90393132, 3728661.90393132, -3728661.90393132,
326 -3728661.90393132, -3728661.90393132, -3728661.90393132, -3728661.90393132,
327 -3728661.90393132, -6044447.11734658, -6044447.11734658, -6044447.11734658,
328 -6044447.11734658, -6044447.11734658, -6044447.11734658, -1.55193104210897e-09,
329 -1.55193104210897e-09, -1.55193104210897e-09, -1.55193104210897e-09,
330 -1.55193104210897e-09, -1.55193104210897e-09, 0, 0, 0, 0, 0, 0, 6044637.32864983,
331 6044637.32864983, 6044637.32864983, 6044637.32864983, 6044637.32864983,
332 6044637.32864983, 3728779.46098178, 3728779.46098178, 3728779.46098178,
333 3728779.46098178, 3728779.46098178, 3728779.46098178, -3728779.46098177,
334 -3728779.46098177, -3728779.46098177, -3728779.46098177, -3728779.46098177,
335 -3728779.46098177, -6044637.32864983, -6044637.32864983, -6044637.32864983,
336 -6044637.32864983, -6044637.32864983, -6044637.32864983, -1.55198002798094e-09,
337 -1.55198002798094e-09, -1.55198002798094e-09, -1.55198002798094e-09,
338 -1.55198002798094e-09, -1.55198002798094e-09};
339 
340 const double XWGS84_MATLAB[216] = {6378137, 1970952.72545164, -5160021.22545164,
341 -5160021.22545164, 1970952.72545164, 6378137, 1976947.14310045, 610910.264199039,
342 -1599383.83574926, -1599383.83574926, 610910.264199039, 1976947.14310045,
343 -5165998.77751058, -1596381.41517097, 4179380.80392626, 4179380.80392626,
344 -1596381.41517097, -5165998.77751058, -5165998.77751058, -1596381.41517097,
345 4179380.80392626, 4179380.80392626, -1596381.41517097, -5165998.77751058,
346 1976947.14310045, 610910.264199039, -1599383.83574926, -1599383.83574926,
347 610910.264199039, 1976947.14310045, 6378137, 1970952.72545164, -5160021.22545164,
348 -5160021.22545164, 1970952.72545164, 6378137, 6378337, 1971014.52885052,
349 -5160183.02885052, -5160183.02885052, 1971014.52885052, 6378337, 1977008.94649932,
350 610929.362499602, -1599433.83574926, -1599433.83574926, 610929.362499601,
351 1977008.94649932, -5166160.58090945, -1596431.41517097, 4179511.70562570,
352 4179511.70562570, -1596431.41517097, -5166160.58090945, -5166160.58090945,
353 -1596431.41517097, 4179511.70562570, 4179511.70562570, -1596431.41517097,
354 -5166160.58090945, 1977008.94649932, 610929.362499601, -1599433.83574926,
355 -1599433.83574926, 610929.362499601, 1977008.94649932, 6378337, 1971014.52885052,
356 -5160183.02885052, -5160183.02885052, 1971014.52885052, 6378337, 6378537,
357 1971076.33224939, -5160344.83224939, -5160344.83224940, 1971076.33224939,
358 6378537, 1977070.74989820, 610948.460800164, -1599483.83574926, -1599483.83574926,
359 610948.460800164, 1977070.74989820, -5166322.38430833, -1596481.41517097,
360 4179642.60732513, 4179642.60732514, -1596481.41517097, -5166322.38430833,
361 -5166322.38430833, -1596481.41517097, 4179642.60732514, 4179642.60732514,
362 -1596481.41517097, -5166322.38430833, 1977070.74989820, 610948.460800164,
363 -1599483.83574926, -1599483.83574926, 610948.460800163, 1977070.74989820,
364 6378537, 1971076.33224939, -5160344.83224939, -5160344.83224940, 1971076.33224939,
365 6378537, 6378737, 1971138.13564827, -5160506.63564827, -5160506.63564827,
366 1971138.13564827, 6378737, 1977132.55329707, 610967.559100727, -1599533.83574926,
367 -1599533.83574926, 610967.559100726, 1977132.55329707, -5166484.18770720,
368 -1596531.41517097, 4179773.50902457, 4179773.50902457, -1596531.41517097,
369 -5166484.18770720, -5166484.18770720, -1596531.41517097, 4179773.50902457,
370 4179773.50902457, -1596531.41517097, -5166484.18770720, 1977132.55329707,
371 610967.559100726, -1599533.83574926, -1599533.83574926, 610967.559100726,
372 1977132.55329707, 6378737, 1971138.13564827, -5160506.63564827, -5160506.63564827,
373 1971138.13564827, 6378737, 6378937, 1971199.93904714, -5160668.43904714,
374 -5160668.43904714, 1971199.93904714, 6378937, 1977194.35669595, 610986.657401289,
375 -1599583.83574926, -1599583.83574926, 610986.657401289, 1977194.35669595,
376 -5166645.99110608, -1596581.41517097, 4179904.41072401, 4179904.41072401,
377 -1596581.41517097, -5166645.99110608, -5166645.99110608, -1596581.41517097,
378 4179904.41072401, 4179904.41072401, -1596581.41517097, -5166645.99110608,
379 1977194.35669595, 610986.657401289, -1599583.83574926, -1599583.83574926,
380 610986.657401288, 1977194.35669595, 6378937, 1971199.93904714, -5160668.43904714,
381 -5160668.43904714, 1971199.93904714, 6378937, 6379137, 1971261.74244602,
382 -5160830.24244602, -5160830.24244602, 1971261.74244602, 6379137, 1977256.16009482,
383 611005.755701852, -1599633.83574926, -1599633.83574926, 611005.755701851,
384 1977256.16009482, -5166807.79450495, -1596631.41517097, 4180035.31242345,
385 4180035.31242345, -1596631.41517097, -5166807.79450495, -5166807.79450495,
386 -1596631.41517097, 4180035.31242345, 4180035.31242345, -1596631.41517097,
387 -5166807.79450495, 1977256.16009482, 611005.755701851, -1599633.83574926,
388 -1599633.83574926, 611005.755701851, 1977256.16009482, 6379137, 1971261.74244602,
389 -5160830.24244602, -5160830.24244602, 1971261.74244602, 6379137};
390 
391 const double YWGS84_MATLAB[216] = {0, 6065968.75567322, 3748974.86570096,
392 -3748974.86570096, -6065968.75567322, -1.56219301231466e-09, 0, 1880188.46281677,
393 1162020.37527618, -1162020.37527618, -1880188.46281677, -4.84212398176294e-10, 0,
394 -4913156.80052423, -3036497.89478166, 3036497.89478166, 4913156.80052423,
395 1.26530477345549e-09, 0, -4913156.80052423, -3036497.89478166, 3036497.89478166,
396 4913156.80052423, 1.26530477345549e-09, 0, 1880188.46281677, 1162020.37527618,
397 -1162020.37527618, -1880188.46281677, -4.84212398176293e-10, 0, 6065968.75567322,
398 3748974.86570096, -3748974.86570096, -6065968.75567322, -1.56219301231466e-09, 0,
399 6066158.96697648, 3749092.42275142, -3749092.42275142, -6066158.96697648,
400 -1.56224199818663e-09, 0, 1880247.24134200, 1162056.70240258, -1162056.70240258,
401 -1880247.24134200, -4.84227535643215e-10, 0, -4913310.68470109, -3036593.00043329,
402 3036593.00043329, 4913310.68470109, 1.26534440385840e-09, 0, -4913310.68470109,
403 -3036593.00043329, 3036593.00043329, 4913310.68470109, 1.26534440385840e-09, 0,
404 1880247.24134200, 1162056.70240258, -1162056.70240258, -1880247.24134200,
405 -4.84227535643215e-10, 0, 6066158.96697648, 3749092.42275142, -3749092.42275142,
406 -6066158.96697648, -1.56224199818663e-09, 0, 6066349.17827974, 3749209.97980188,
407 -3749209.97980187, -6066349.17827974, -1.56229098405859e-09, 0, 1880306.01986723,
408 1162093.02952898, -1162093.02952898, -1880306.01986723, -4.84242673110137e-10, 0,
409 -4913464.56887795, -3036688.10608492, 3036688.10608492, 4913464.56887795,
410 1.26538403426130e-09, 0, -4913464.56887795, -3036688.10608492, 3036688.10608492,
411 4913464.56887795, 1.26538403426130e-09, 0, 1880306.01986722, 1162093.02952898,
412 -1162093.02952898, -1880306.01986723, -4.84242673110137e-10, 0, 6066349.17827974,
413 3749209.97980188, -3749209.97980187, -6066349.17827974, -1.56229098405859e-09, 0,
414 6066539.38958300, 3749327.53685233, -3749327.53685233, -6066539.38958300,
415 -1.56233996993056e-09, 0, 1880364.79839246, 1162129.35665538, -1162129.35665538,
416 -1880364.79839246, -4.84257810577059e-10, 0, -4913618.45305481, -3036783.21173655,
417 3036783.21173655, 4913618.45305481, 1.26542366466421e-09, 0, -4913618.45305481,
418 -3036783.21173655, 3036783.21173655, 4913618.45305481, 1.26542366466421e-09, 0,
419 1880364.79839245, 1162129.35665538, -1162129.35665538, -1880364.79839245,
420 -4.84257810577058e-10, 0, 6066539.38958300, 3749327.53685233, -3749327.53685233,
421 -6066539.38958300, -1.56233996993056e-09, 0, 6066729.60088626, 3749445.09390279,
422 -3749445.09390279, -6066729.60088626, -1.56238895580252e-09, 0, 1880423.57691768,
423 1162165.68378178, -1162165.68378178, -1880423.57691768, -4.84272948043980e-10, 0,
424 -4913772.33723167, -3036878.31738818, 3036878.31738818, 4913772.33723167,
425 1.26546329506711e-09, 0, -4913772.33723167, -3036878.31738818, 3036878.31738818,
426 4913772.33723167, 1.26546329506711e-09, 0, 1880423.57691768, 1162165.68378178,
427 -1162165.68378178, -1880423.57691768, -4.84272948043980e-10, 0, 6066729.60088626,
428 3749445.09390279, -3749445.09390279, -6066729.60088626, -1.56238895580252e-09, 0,
429 6066919.81218952, 3749562.65095325, -3749562.65095325, -6066919.81218952,
430 -1.56243794167449e-09, 0, 1880482.35544291, 1162202.01090818, -1162202.01090818,
431 -1880482.35544291, -4.84288085510902e-10, 0, -4913926.22140853, -3036973.42303981,
432 3036973.42303981, 4913926.22140853, 1.26550292547002e-09, 0, -4913926.22140853,
433 -3036973.42303981, 3036973.42303981, 4913926.22140853, 1.26550292547002e-09, 0,
434 1880482.35544291, 1162202.01090818, -1162202.01090818, -1880482.35544291,
435 -4.84288085510902e-10, 0, 6066919.81218952, 3749562.65095325, -3749562.65095325,
436 -6066919.81218952, -1.56243794167449e-09};
437 
438 const double ZWGS84_MATLAB[216] = {0, 0, 0, 0, 0, 0, 6043686.27224277,
439 6043686.27224277, 6043686.27224277, 6043686.27224277, 6043686.27224277,
440 6043686.27224277, 3728191.67583129, 3728191.67583129, 3728191.67583129,
441 3728191.67583129, 3728191.67583129, 3728191.67583129, -3728191.67583129,
442 -3728191.67583129, -3728191.67583129, -3728191.67583129, -3728191.67583129,
443 -3728191.67583129, -6043686.27224277, -6043686.27224277, -6043686.27224277,
444 -6043686.27224277, -6043686.27224277, -6043686.27224277, -1.55173509867228e-09,
445 -1.55173509867228e-09, -1.55173509867228e-09, -1.55173509867228e-09,
446 -1.55173509867228e-09, -1.55173509867228e-09, 0, 0, 0, 0, 0, 0, 6043876.48354603,
447 6043876.48354603, 6043876.48354603, 6043876.48354603, 6043876.48354603,
448 6043876.48354603, 3728309.23288175, 3728309.23288175, 3728309.23288175,
449 3728309.23288175, 3728309.23288175, 3728309.23288175, -3728309.23288175,
450 -3728309.23288175, -3728309.23288175, -3728309.23288175, -3728309.23288175,
451 -3728309.23288175, -6043876.48354603, -6043876.48354603, -6043876.48354603,
452 -6043876.48354603, -6043876.48354603, -6043876.48354603, -1.55178408454425e-09,
453 -1.55178408454425e-09, -1.55178408454425e-09, -1.55178408454425e-09,
454 -1.55178408454425e-09, -1.55178408454425e-09, 0, 0, 0, 0, 0, 0, 6044066.69484929,
455 6044066.69484929, 6044066.69484929, 6044066.69484929, 6044066.69484929,
456 6044066.69484929, 3728426.78993221, 3728426.78993221, 3728426.78993221,
457 3728426.78993221, 3728426.78993221, 3728426.78993221, -3728426.78993221,
458 -3728426.78993221, -3728426.78993221, -3728426.78993221, -3728426.78993221,
459 -3728426.78993221, -6044066.69484929, -6044066.69484929, -6044066.69484929,
460 -6044066.69484929, -6044066.69484929, -6044066.69484929, -1.55183307041621e-09,
461 -1.55183307041621e-09, -1.55183307041621e-09, -1.55183307041621e-09,
462 -1.55183307041621e-09, -1.55183307041621e-09, 0, 0, 0, 0, 0, 0, 6044256.90615255,
463 6044256.90615255, 6044256.90615255, 6044256.90615255, 6044256.90615255,
464 6044256.90615255, 3728544.34698267, 3728544.34698267, 3728544.34698267,
465 3728544.34698267, 3728544.34698267, 3728544.34698267, -3728544.34698267,
466 -3728544.34698267, -3728544.34698267, -3728544.34698267, -3728544.34698267,
467 -3728544.34698267, -6044256.90615255, -6044256.90615255, -6044256.90615255,
468 -6044256.90615255, -6044256.90615255, -6044256.90615255, -1.55188205628818e-09,
469 -1.55188205628818e-09, -1.55188205628818e-09, -1.55188205628818e-09,
470 -1.55188205628818e-09, -1.55188205628818e-09, 0, 0, 0, 0, 0, 0, 6044447.11745581,
471 6044447.11745581, 6044447.11745581, 6044447.11745581, 6044447.11745581,
472 6044447.11745581, 3728661.90403313, 3728661.90403313, 3728661.90403313,
473 3728661.90403313, 3728661.90403313, 3728661.90403313, -3728661.90403313,
474 -3728661.90403313, -3728661.90403313, -3728661.90403313, -3728661.90403313,
475 -3728661.90403313, -6044447.11745581, -6044447.11745581, -6044447.11745581,
476 -6044447.11745581, -6044447.11745581, -6044447.11745581, -1.55193104216015e-09,
477 -1.55193104216015e-09, -1.55193104216015e-09, -1.55193104216015e-09,
478 -1.55193104216015e-09, -1.55193104216015e-09, 0, 0, 0, 0, 0, 0, 6044637.32875907,
479 6044637.32875907, 6044637.32875907, 6044637.32875907, 6044637.32875907,
480 6044637.32875907, 3728779.46108359, 3728779.46108359, 3728779.46108359,
481 3728779.46108359, 3728779.46108359, 3728779.46108359, -3728779.46108358,
482 -3728779.46108358, -3728779.46108358, -3728779.46108358, -3728779.46108358,
483 -3728779.46108358, -6044637.32875907, -6044637.32875907, -6044637.32875907,
484 -6044637.32875907, -6044637.32875907, -6044637.32875907, -1.55198002803211e-09,
485 -1.55198002803211e-09, -1.55198002803211e-09, -1.55198002803211e-09,
486 -1.55198002803211e-09, -1.55198002803211e-09};
487 
488 
490 {
491 public:
492  GeoToCartesianTestCase (double latitude,
493  double longitude,
494  double altitude,
496  int i);
497  virtual ~GeoToCartesianTestCase ();
498 
499 private:
500  virtual void DoRun (void);
501  static std::string Name (double latitude,
502  double longitude,
503  double altitude,
505  double m_latitude;
506  double m_longitude;
507  double m_altitude;
509  int m_i;
510 };
511 
512 std::string
514  double longitude,
515  double altitude,
517 {
518  std::ostringstream oss;
519  oss << "latitude = " << latitude << " degrees, "
520  << "longitude = " << longitude << " degrees, "
521  << "altitude = " << altitude << " meters, "
522  << "earth spheroid type = " << sphType;
523  return oss.str();
524 }
525 
527  double longitude,
528  double altitude,
530  int i)
531  : TestCase (Name (latitude, longitude, altitude, sphType)),
532  m_latitude (latitude),
533  m_longitude (longitude),
534  m_altitude (altitude),
535  m_sphType (sphType),
536  m_i (i)
537 {
538 }
539 
541 {
542 }
543 
544 void
546 {
547  Vector cart = GeographicPositions::GeographicToCartesianCoordinates (m_latitude,
548  m_longitude,
549  m_altitude,
550  m_sphType);
551  if (m_sphType == GeographicPositions::SPHERE)
552  {
553  NS_TEST_ASSERT_MSG_EQ_TOL (cart.x,
554  XSPHERE_MATLAB [m_i],
555  TOLERANCE,
556  "x coordinate (" << cart.x << ") is incorrect "
557  "for perfect sphere model in iteration " << m_i);
558  NS_TEST_ASSERT_MSG_EQ_TOL (cart.y,
559  YSPHERE_MATLAB [m_i],
560  TOLERANCE,
561  "y coordinate (" << cart.y << ") is incorrect "
562  "for perfect sphere model in iteration " << m_i);
563  NS_TEST_ASSERT_MSG_EQ_TOL (cart.z,
564  ZSPHERE_MATLAB [m_i],
565  TOLERANCE,
566  "z coordinate (" << cart.z << ") is incorrect "
567  "for perfect sphere model in iteration " << m_i);
568  }
569  else if (m_sphType == GeographicPositions::GRS80)
570  {
571  NS_TEST_ASSERT_MSG_EQ_TOL (cart.x,
572  XGRS80_MATLAB [m_i],
573  TOLERANCE,
574  "x coordinate (" << cart.x << ") is incorrect "
575  "for GRS80 model in iteration " << m_i);
576  NS_TEST_ASSERT_MSG_EQ_TOL (cart.y,
577  YGRS80_MATLAB [m_i],
578  TOLERANCE,
579  "y coordinate (" << cart.y << ") is incorrect "
580  "for GRS80 model in iteration " << m_i);
581  NS_TEST_ASSERT_MSG_EQ_TOL (cart.z,
582  ZGRS80_MATLAB [m_i],
583  TOLERANCE,
584  "z coordinate (" << cart.z << ") is incorrect "
585  "for GRS80 model in iteration " << m_i);
586  }
587  else // if m_sphType == GeographicPositions::WGS84
588  {
589  NS_TEST_ASSERT_MSG_EQ_TOL (cart.x,
590  XWGS84_MATLAB [m_i],
591  TOLERANCE,
592  "x coordinate (" << cart.x << ") is incorrect "
593  "for WGS84 model in iteration " << m_i);
594  NS_TEST_ASSERT_MSG_EQ_TOL (cart.y,
595  YWGS84_MATLAB [m_i],
596  TOLERANCE,
597  "y coordinate (" << cart.y << ") is incorrect "
598  "for WGS84 model in iteration " << m_i);
599  NS_TEST_ASSERT_MSG_EQ_TOL (cart.z,
600  ZWGS84_MATLAB [m_i],
601  TOLERANCE,
602  "z coordinate (" << cart.z << ") is incorrect "
603  "for WGS84 model in iteration " << m_i);
604  }
605 }
606 
607 
609 {
610 public:
612 };
613 
615  : TestSuite ("geo-to-cartesian", UNIT)
616 {
617  NS_LOG_INFO ("creating GeoToCartesianTestSuite");
618  int i = 0; // iteration number
619  for (double altitude = 0; altitude <= 1000; altitude += 200)
620  {
621  for (double latitude = 0; latitude <= 360; latitude += 72)
622  {
623  for (double longitude = 0; longitude <= 360; longitude += 72)
624  {
625  AddTestCase (new GeoToCartesianTestCase (latitude,
626  longitude,
627  altitude,
628  GeographicPositions::SPHERE,
629  i),
630  TestCase::QUICK);
631  ++i;
632  }
633  }
634  }
635  i = 0;
636  for (double altitude = 0; altitude <= 1000; altitude += 200)
637  {
638  for (double latitude = 0; latitude <= 360; latitude += 72)
639  {
640  for (double longitude = 0; longitude <= 360; longitude += 72)
641  {
642  AddTestCase (new GeoToCartesianTestCase (latitude,
643  longitude,
644  altitude,
645  GeographicPositions::GRS80,
646  i),
647  TestCase::QUICK);
648  ++i;
649  }
650  }
651  }
652  i = 0;
653  for (double altitude = 0; altitude <= 1000; altitude += 200)
654  {
655  for (double latitude = 0; latitude <= 360; latitude += 72)
656  {
657  for (double longitude = 0; longitude <= 360; longitude += 72)
658  {
659  AddTestCase (new GeoToCartesianTestCase (latitude,
660  longitude,
661  altitude,
662  GeographicPositions::WGS84,
663  i),
664  TestCase::QUICK);
665  ++i;
666  }
667  }
668  }
669 }
670 
const double XGRS80_MATLAB[216]
const double ZWGS84_MATLAB[216]
A suite of tests to run.
Definition: test.h:1333
const double ZSPHERE_MATLAB[216]
const double XSPHERE_MATLAB[216]
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition: log.h:201
const double YGRS80_MATLAB[216]
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
Definition: log.h:244
encapsulates test code
Definition: test.h:1147
const double YSPHERE_MATLAB[216]
static std::string Name(std::string str, uint32_t totalStreamSize, uint32_t sourceWriteSize, uint32_t serverReadSize, uint32_t serverWriteSize, uint32_t sourceReadSize, bool useIpv6)
Definition: tcp-test.cc:97
GeographicPositions::EarthSpheroidType m_sphType
void AddTestCase(TestCase *testCase, enum TestDuration duration)
Add an individual child TestCase to this test suite.
Definition: test.cc:298
static GeoToCartesianTestSuite g_GeoToCartesianTestSuite
const double YWGS84_MATLAB[216]
virtual void DoRun(void)
Implementation to actually run this TestCase.
const double TOLERANCE
const double XWGS84_MATLAB[216]
#define NS_TEST_ASSERT_MSG_EQ_TOL(actual, limit, tol, msg)
Test that actual and expected (limit) values are equal to plus or minus some tolerance and report and...
Definition: test.h:373
static std::string Name(double latitude, double longitude, double altitude, GeographicPositions::EarthSpheroidType sphType)
GeoToCartesianTestCase(double latitude, double longitude, double altitude, GeographicPositions::EarthSpheroidType sphType, int i)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
EarthSpheroidType
Spheroid model to use for earth: perfect sphere (SPHERE), Geodetic Reference System 1980 (GRS80)...
static const double TOLERANCE
Tolerance used to check reciprocal of two numbers.
const double ZGRS80_MATLAB[216]