1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.gnss.rflink.gps;
18
19 import org.junit.jupiter.api.Assertions;
20 import org.junit.jupiter.api.Test;
21 import org.orekit.errors.OrekitException;
22 import org.orekit.errors.OrekitMessages;
23 import org.orekit.gnss.metric.parser.HexadecimalSequenceEncodedMessage;
24
25
26
27
28 public class SubFramesTest {
29
30 @Test
31 public void testWrongPreamble() {
32 try {
33 SubFrame.parse(new HexadecimalSequenceEncodedMessage("8c0308d40008c3c7978c9dcda8a6533a6f2ca78c052ab26a21a7f17a01ce0526c4732e9bb840"));
34 Assertions.fail("an exception should have been thrown");
35 } catch (OrekitException oe) {
36 Assertions.assertEquals(OrekitMessages.INVALID_GNSS_DATA, oe.getSpecifier());
37 Assertions.assertEquals(0x8c, ((Integer) oe.getParts()[0]).intValue());
38 }
39 }
40
41 @Test
42 public void testWrongSvId() {
43 try {
44
45 SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540008c3c4978c940da8a66c3a6f2c5b8c0529426a21a8317a01f10526c48f2e9bbbb0"));
46 Assertions.fail("an exception should have been thrown");
47 } catch (OrekitException oe) {
48 Assertions.assertEquals(OrekitMessages.INVALID_GNSS_DATA, oe.getSpecifier());
49 Assertions.assertEquals(9, ((Integer) oe.getParts()[0]).intValue());
50 }
51 }
52
53 @Test
54 public void testParityError() {
55 try {
56 SubFrame.parse(new HexadecimalSequenceEncodedMessage("8c0308540008c3e7978c9dcda8a6533a6f2ca78c052ab26a21a7f17a01ce0526c4732e9bb840"));
57 Assertions.fail("an exception should have been thrown");
58 } catch (OrekitException oe) {
59 Assertions.assertEquals(OrekitMessages.GNSS_PARITY_ERROR, oe.getSpecifier());
60 Assertions.assertEquals(0x1, ((Integer) oe.getParts()[0]).intValue());
61 }
62 }
63
64 @Test
65 public void testSubFrame1() {
66 SubFrame1 sf = (SubFrame1) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b030854068892030900060162f57126c4c680d21f5fdfcc40a7978070bc00ffd4307a443c40"));
67 Assertions.assertEquals(139, sf.getPreamble());
68 Assertions.assertEquals(194, sf.getMessage());
69 Assertions.assertEquals(0, sf.getIntegrityStatus());
70 Assertions.assertEquals(5016, sf.getTow());
71 Assertions.assertEquals(0, sf.getAlert());
72 Assertions.assertEquals(1, sf.getAntiSpoofing());
73 Assertions.assertEquals(1, sf.getId());
74 Assertions.assertEquals(194, sf.getWeekNumber());
75 Assertions.assertEquals(1, sf.getCaOrPFlag());
76 Assertions.assertEquals(0, sf.getUraIndex());
77 Assertions.assertEquals(0, sf.getSvHealth());
78 Assertions.assertEquals(94, sf.getIODC());
79 Assertions.assertEquals(0, sf.getL2PDataFlag());
80 Assertions.assertEquals(363477, sf.getReserved04());
81 Assertions.assertEquals(2540742, sf.getReserved05());
82 Assertions.assertEquals(3442647, sf.getReserved06());
83 Assertions.assertEquals(64708, sf.getReserved07());
84 Assertions.assertEquals(10, sf.getTGD());
85 Assertions.assertEquals(450, sf.getTOC());
86 Assertions.assertEquals(0.0, sf.getAF2(), 1.0e-15);
87 Assertions.assertEquals(7.445578376064077E-9, sf.getAF1(), 1.0e-15);
88 Assertions.assertEquals(2.3320456966757774E-4, sf.getAF0(), 1.0e-15);
89 }
90
91 @Test
92 public void testSubFrame2() {
93 SubFrame2 sf = (SubFrame2) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540d2ea746b030f34bb0912d308f53300904199380148d3fca68580d378bd40e11fd40"));
94 Assertions.assertEquals(139, sf.getPreamble());
95 Assertions.assertEquals(194, sf.getMessage());
96 Assertions.assertEquals(0, sf.getIntegrityStatus());
97 Assertions.assertEquals(10122, sf.getTow());
98 Assertions.assertEquals(0, sf.getAlert());
99 Assertions.assertEquals(1, sf.getAntiSpoofing());
100 Assertions.assertEquals(2, sf.getId());
101 Assertions.assertEquals(107, sf.getIODE());
102 Assertions.assertEquals(24.46875, sf.getCrs(), 1.0e-15);
103 Assertions.assertEquals(4.275178078327134E-9, sf.getDeltaN(), 1.0e-15);
104 Assertions.assertEquals(1.6736267155104847, sf.getM0(), 1.0e-15);
105 Assertions.assertEquals(3.3764149269486122E-6,sf.getCuc(), 1.0e-15);
106 Assertions.assertEquals(0.01214603427797556, sf.getE(), 1.0e-15);
107 Assertions.assertEquals(3.822370874232414E-4, sf.getCus(), 1.0e-15);
108 Assertions.assertEquals(-3038.34787940979, sf.getSqrtA(), 1.0e-15);
109 Assertions.assertEquals(14400, sf.getToe());
110 Assertions.assertEquals(0, sf.getFitInterval());
111 Assertions.assertEquals(27900, sf.getAODO());
112 }
113
114 @Test
115 public void testSubFrame3() {
116 SubFrame3 sf = (SubFrame3) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540326b70ffe3cceee041fc9004128d12d58220319126b123f7db4ffa35bbd7be89080"));
117 Assertions.assertEquals(139, sf.getPreamble());
118 Assertions.assertEquals(194, sf.getMessage());
119 Assertions.assertEquals(0, sf.getIntegrityStatus());
120 Assertions.assertEquals(2418, sf.getTow());
121 Assertions.assertEquals(0, sf.getAlert());
122 Assertions.assertEquals(1, sf.getAntiSpoofing());
123 Assertions.assertEquals(3, sf.getId());
124 Assertions.assertEquals(1.220162957906723E-4, sf.getCic(), 1.0e-15);
125 Assertions.assertEquals(-1.2586250585571226, sf.getUppercaseOmega0(), 1.0e-15);
126 Assertions.assertEquals(1.210719347000122E-7, sf.getCis(), 1.0e-15);
127 Assertions.assertEquals(0.9889704584978043, sf.getI0(), 1.0e-15);
128 Assertions.assertEquals(396.53125, sf.getCrc(), 1.0e-15);
129 Assertions.assertEquals(0.9396583427359628, sf.getLowercaseOmega(), 1.0e-15);
130 Assertions.assertEquals(5.983641742696371E-6, sf.getOmegaDot(), 1.0e-15);
131 Assertions.assertEquals(94, sf.getIODE());
132 Assertions.assertEquals(5.71773816674512E-9, sf.getIDot(), 1.0e-15);
133 }
134
135 @Test
136 public void testSubFrame4Page01() {
137 SubFrame4A0 page01 = (SubFrame4A0) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540008c3c7978c9dcda8a6533a6f2ca78c052ab26a21a7f17a01ce0526c4732e9bb840"));
138 Assertions.assertEquals( 139, page01.getPreamble());
139 Assertions.assertEquals( 194, page01.getMessage());
140 Assertions.assertEquals( 0, page01.getIntegrityStatus());
141 Assertions.assertEquals( 24, page01.getTow());
142 Assertions.assertEquals( 0, page01.getAlert());
143 Assertions.assertEquals( 1, page01.getAntiSpoofing());
144 Assertions.assertEquals( 4, page01.getId());
145 Assertions.assertEquals( 1, page01.getDataId());
146 Assertions.assertEquals( 57, page01.getSvId());
147 Assertions.assertEquals( 30921, page01.getReserved03());
148 Assertions.assertEquals( 3580569, page01.getReserved04());
149 Assertions.assertEquals( 3829548, page01.getReserved05());
150 Assertions.assertEquals(14877002, page01.getReserved06());
151 Assertions.assertEquals( 2531866, page01.getReserved07());
152 Assertions.assertEquals(12969991, page01.getReserved08());
153 Assertions.assertEquals( 5, page01.getReservedA09());
154 Assertions.assertEquals( 9924, page01.getReservedB09());
155 Assertions.assertEquals( 3336635, page01.getReserved10());
156 Assertions.assertFalse(page01.hasParityErrors());
157
158
159 final int word01 = 0x8b030854 >>> 2;
160 final int word02 = 0x40008c3c & 0x3FFFFFFF;
161 final int word03 = 0x7978c9dc >>> 2;
162 final int word04 = 0xcda8a653 & 0x3FFFFFFF;
163 final int word05 = 0x3a6f2ca7 >>> 2;
164 final int word06 = 0x78c052ab & 0x3FFFFFFF;
165 final int word07 = 0x26a21a7f >>> 2;
166 final int word08 = 0xf17a01ce & 0x3FFFFFFF;
167 final int word09 = 0x0526c473 >>> 2;
168 final int word10 = 0x32e9bb84 & 0x3FFFFFFF;
169
170 Assertions.assertEquals((word01 >>> 8) & 0x3FFF, page01.getMessage());
171 Assertions.assertEquals((word02 >>> 8) & 0x7, page01.getId());
172 Assertions.assertEquals((word03 >>> 6) & 0xFFFF, page01.getReserved03());
173 Assertions.assertEquals((word04 >>> 6) & 0xFFFFFF, page01.getReserved04());
174 Assertions.assertEquals((word05 >>> 6) & 0xFFFFFF, page01.getReserved05());
175 Assertions.assertEquals((word06 >>> 6) & 0xFFFFFF, page01.getReserved06());
176 Assertions.assertEquals((word07 >>> 6) & 0xFFFFFF, page01.getReserved07());
177 Assertions.assertEquals((word08 >>> 6) & 0xFFFFFF, page01.getReserved08());
178 Assertions.assertEquals((word09 >>> 22) & 0xFF, page01.getReservedA09());
179 Assertions.assertEquals((word09 >>> 6) & 0xFFFF, page01.getReservedB09());
180 Assertions.assertEquals((word10 >>> 8) & 0x3FFFFF, page01.getReserved10());
181
182 }
183
184 @Test
185 public void testSubFrame4Page02() {
186 SubFrameAlmanac page02 = (SubFrameAlmanac) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540012c68595a43dc90200abfd4c00ce843061a7649d8a4a4b16351ee15418d4009d00"));
187 Assertions.assertEquals( 139, page02.getPreamble());
188 Assertions.assertEquals( 194, page02.getMessage());
189 Assertions.assertEquals( 0, page02.getIntegrityStatus());
190 Assertions.assertEquals( 54, page02.getTow());
191 Assertions.assertEquals( 0, page02.getAlert());
192 Assertions.assertEquals( 1, page02.getAntiSpoofing());
193 Assertions.assertEquals( 4, page02.getId());
194 Assertions.assertEquals( 1, page02.getDataId());
195 Assertions.assertEquals( 25, page02.getSvId());
196 Assertions.assertEquals( 0.01101827621459961, page02.getE(), 1.0e-15);
197 Assertions.assertEquals( 147456, page02.getToaA());
198 Assertions.assertEquals( 0.012283830527990513, page02.getDeltai(), 1.0e-15);
199 Assertions.assertEquals( 7.411051557187493E-7, page02.getOmegaDot(), 1.0e-15);
200 Assertions.assertEquals( 0, page02.getSvHealth());
201 Assertions.assertEquals( 5153.51171875, page02.getSqrtA(), 1.0e-15);
202 Assertions.assertEquals( 2.9032354083909366, page02.getUppercaseOmega0(), 1.0e-15);
203 Assertions.assertEquals( 1.010542800638158, page02.getLowercaseOmega(), 1.0e-15);
204 Assertions.assertEquals( 0.7579138416051279, page02.getM0(), 1.0e-15);
205 Assertions.assertEquals(4.0531158447265625E-4, page02.getAF0(), 1.0e-15);
206 Assertions.assertEquals(3.637978807091713E-12, page02.getAF1(), 1.0e-15);
207 }
208
209 @Test
210 public void testSubFrame4Page03() {
211 SubFrameAlmanac page03 = (SubFrameAlmanac) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b030854001cc0c5a3f0ad493ede0afd37008e84318fd742311b44484c0dfedaab307c003f80"));
212 Assertions.assertEquals( 84, page03.getTow());
213 Assertions.assertEquals( 4, page03.getId());
214 Assertions.assertEquals( 1, page03.getDataId());
215 Assertions.assertEquals( 26, page03.getSvId());
216 }
217
218 @Test
219 public void testSubFrame4Page04() {
220 SubFrameAlmanac page04 = (SubFrameAlmanac) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540026cc05b5a184c9047207fd6000068433dd5a13e92c06f96b70b6cad1344bfeedc0"));
221 Assertions.assertEquals(114, page04.getTow());
222 Assertions.assertEquals( 4, page04.getId());
223 Assertions.assertEquals( 1, page04.getDataId());
224 Assertions.assertEquals( 27, page04.getSvId());
225 }
226
227 @Test
228 public void testSubFrame4Page05() {
229
230 SubFrameDummyAlmanac page05 = (SubFrameDummyAlmanac) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540030c2040aaaab2aaaaabcaaaaaaf2aaaaabcaaaaaaf2aaaaabcaaaaaaf2aaaaabc0"));
231 Assertions.assertEquals(144, page05.getTow());
232 Assertions.assertEquals( 4, page05.getId());
233 Assertions.assertEquals( 1, page05.getDataId());
234 Assertions.assertEquals( 0, page05.getSvId());
235 }
236
237 @Test
238 public void testSubFrame4Page06() {
239 SubFrame4A0 page06 = (SubFrame4A0) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b030854003acbc7978c9dcda8a6533a6f2ca78c052ab26a21a7f17a01ce0526c47183039880"));
240 Assertions.assertEquals(174, page06.getTow());
241 Assertions.assertEquals( 4, page06.getId());
242 Assertions.assertEquals( 1, page06.getDataId());
243 Assertions.assertEquals( 57, page06.getSvId());
244 }
245
246 @Test
247 public void testSubFrame4Page07() {
248 SubFrameAlmanac page07 = (SubFrameAlmanac) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540044cb05d113640905defcfd65003a84320e6a46fe0098ef2fc4b41fe2e2d3ffbb00"));
249 Assertions.assertEquals(204, page07.getTow());
250 Assertions.assertEquals( 4, page07.getId());
251 Assertions.assertEquals( 1, page07.getDataId());
252 Assertions.assertEquals( 29, page07.getSvId());
253 }
254
255 @Test
256 public void testSubFrame4Page08() {
257 SubFrameAlmanac page08 = (SubFrameAlmanac) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b030854004ec2c5e31142893ed016fd3500f284330ae4c83f4e64d436513d0410dae4007640"));
258 Assertions.assertEquals(234, page08.getTow());
259 Assertions.assertEquals( 4, page08.getId());
260 Assertions.assertEquals( 1, page08.getDataId());
261 Assertions.assertEquals( 30, page08.getSvId());
262 }
263
264 @Test
265 public void testSubFrame4Page09() {
266 SubFrameAlmanac page09 = (SubFrameAlmanac) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540058ccc5f585130901e8b9fd4600e284323814cf61d504f39dc92ad34b1f94002c00"));
267 Assertions.assertEquals(264, page09.getTow());
268 Assertions.assertEquals( 4, page09.getId());
269 Assertions.assertEquals( 1, page09.getDataId());
270 Assertions.assertEquals( 31, page09.getSvId());
271 }
272
273 @Test
274 public void testSubFrame4Page10() {
275 SubFrameAlmanac page10 = (SubFrameAlmanac) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540062c0060343d0c902b213fd60000684349462101d9b28b1abdad379494b4ffe0800"));
276 Assertions.assertEquals(294, page10.getTow());
277 Assertions.assertEquals( 4, page10.getId());
278 Assertions.assertEquals( 1, page10.getDataId());
279 Assertions.assertEquals( 32, page10.getSvId());
280 }
281
282 @Test
283 public void testSubFrame4Page11() {
284 SubFrame4A0 page11 = (SubFrame4A0) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b030854006cc647978c9dcda8a6533a6f2ca78c052ab26a21a7f17a01ce0526c473fddb08c0"));
285 Assertions.assertEquals(324, page11.getTow());
286 Assertions.assertEquals( 4, page11.getId());
287 Assertions.assertEquals( 1, page11.getDataId());
288 Assertions.assertEquals( 57, page11.getSvId());
289 }
290
291 @Test
292 public void testSubFrame4Page12() {
293 SubFrame4A1 page12 = (SubFrame4A1) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540076c307e04887f64206ee7d8a2d7572d5e09e14d671b724005fe9910ba732a8f2c0"));
294 Assertions.assertEquals( 139, page12.getPreamble());
295 Assertions.assertEquals( 194, page12.getMessage());
296 Assertions.assertEquals( 0, page12.getIntegrityStatus());
297 Assertions.assertEquals( 354, page12.getTow());
298 Assertions.assertEquals( 0, page12.getAlert());
299 Assertions.assertEquals( 1, page12.getAntiSpoofing());
300 Assertions.assertEquals( 4, page12.getId());
301 Assertions.assertEquals( 1, page12.getDataId());
302 Assertions.assertEquals( 62, page12.getSvId());
303 Assertions.assertEquals( 1160, page12.getReserved03());
304 Assertions.assertEquals(14223387, page12.getReserved04());
305 Assertions.assertEquals( 8227373, page12.getReserved05());
306 Assertions.assertEquals( 6075768, page12.getReserved06());
307 Assertions.assertEquals(14765415, page12.getReserved07());
308 Assertions.assertEquals(14454785, page12.getReserved08());
309 Assertions.assertEquals( 233, page12.getReservedA09());
310 Assertions.assertEquals( 37131, page12.getReservedB09());
311 Assertions.assertEquals( 3353231, page12.getReserved10());
312 }
313
314 @Test
315 public void testSubFrame4Page13() {
316 SubFrame4C page13 = (SubFrame4C) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540080ce4747026e640a3f104b3e59089759d1957cd4b951ec3140e6f502c059fa8380"));
317 Assertions.assertEquals(139, page13.getPreamble());
318 Assertions.assertEquals(194, page13.getMessage());
319 Assertions.assertEquals( 0, page13.getIntegrityStatus());
320 Assertions.assertEquals(384, page13.getTow());
321 Assertions.assertEquals( 0, page13.getAlert());
322 Assertions.assertEquals( 1, page13.getAntiSpoofing());
323 Assertions.assertEquals( 4, page13.getId());
324 Assertions.assertEquals( 1, page13.getDataId());
325 Assertions.assertEquals( 52, page13.getSvId());
326 Assertions.assertEquals( 48, page13.getERD( 1));
327 Assertions.assertEquals( 9, page13.getERD( 2));
328 Assertions.assertEquals( 41, page13.getERD( 3));
329 Assertions.assertEquals( 9, page13.getERD( 4));
330 Assertions.assertEquals( 0, page13.getERD( 5));
331 Assertions.assertEquals( 40, page13.getERD( 6));
332 Assertions.assertEquals( 63, page13.getERD( 7));
333 Assertions.assertEquals( 4, page13.getERD( 8));
334 Assertions.assertEquals( 4, page13.getERD( 9));
335 Assertions.assertEquals( 44, page13.getERD(10));
336 Assertions.assertEquals( 62, page13.getERD(11));
337 Assertions.assertEquals( 22, page13.getERD(12));
338 Assertions.assertEquals( 18, page13.getERD(13));
339 Assertions.assertEquals( 2, page13.getERD(14));
340 Assertions.assertEquals( 23, page13.getERD(15));
341 Assertions.assertEquals( 22, page13.getERD(16));
342 Assertions.assertEquals( 29, page13.getERD(17));
343 Assertions.assertEquals( 5, page13.getERD(18));
344 Assertions.assertEquals( 5, page13.getERD(19));
345 Assertions.assertEquals( 31, page13.getERD(20));
346 Assertions.assertEquals( 13, page13.getERD(21));
347 Assertions.assertEquals( 18, page13.getERD(22));
348 Assertions.assertEquals( 52, page13.getERD(23));
349 Assertions.assertEquals( 4, page13.getERD(24));
350 Assertions.assertEquals( 30, page13.getERD(25));
351 Assertions.assertEquals( 48, page13.getERD(26));
352 Assertions.assertEquals( 49, page13.getERD(27));
353 Assertions.assertEquals( 30, page13.getERD(28));
354 Assertions.assertEquals( 14, page13.getERD(29));
355 Assertions.assertEquals( 27, page13.getERD(30));
356 }
357
358 @Test
359 public void testSubFrame4Page14() {
360 SubFrame4B page14 = (SubFrame4B) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b030854008ac7875aaaac6aaaaaaaaaaaaa56aaaaaaaaaaaaa56aaaaaaaaaaaaa56aaaaa5c0"));
361 Assertions.assertEquals( 139, page14.getPreamble());
362 Assertions.assertEquals( 194, page14.getMessage());
363 Assertions.assertEquals( 0, page14.getIntegrityStatus());
364 Assertions.assertEquals( 414, page14.getTow());
365 Assertions.assertEquals( 0, page14.getAlert());
366 Assertions.assertEquals( 1, page14.getAntiSpoofing());
367 Assertions.assertEquals( 4, page14.getId());
368 Assertions.assertEquals( 1, page14.getDataId());
369 Assertions.assertEquals( 53, page14.getSvId());
370 Assertions.assertEquals( 43690, page14.getReserved03());
371 Assertions.assertEquals(11184810, page14.getReserved04());
372 Assertions.assertEquals(11184810, page14.getReserved05());
373 Assertions.assertEquals(11184810, page14.getReserved06());
374 Assertions.assertEquals(11184810, page14.getReserved07());
375 Assertions.assertEquals(11184810, page14.getReserved08());
376 Assertions.assertEquals(11184810, page14.getReserved09());
377 Assertions.assertEquals( 2796202, page14.getReserved10());
378 }
379
380 @Test
381 public void testSubFrame4Page15() {
382 SubFrame4B page15 = (SubFrame4B) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540094cd476aaaa9aaaaabcd3f494828e2dfabec3504c536fcf2a194c3eb3d2833efc0"));
383 Assertions.assertEquals(444, page15.getTow());
384 Assertions.assertEquals( 4, page15.getId());
385 Assertions.assertEquals( 1, page15.getDataId());
386 Assertions.assertEquals( 54, page15.getSvId());
387 }
388
389 @Test
390 public void testSubFrame4Page16() {
391 SubFrame4A0 page16 = (SubFrame4A0) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b030854009ec487978c9dcda8a6533a6f2ca78c052ab26a21a7f17a01ce0526c4705db5bb00"));
392 Assertions.assertEquals(474, page16.getTow());
393 Assertions.assertEquals( 4, page16.getId());
394 Assertions.assertEquals( 1, page16.getDataId());
395 Assertions.assertEquals( 57, page16.getSvId());
396 }
397
398 @Test
399 public void testSubFrame4Page17() {
400 SubFrame4B page17 = (SubFrame4B) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085400a8c30772053a958dcaf3f84938693528c3c504838551d08c0b2239494d5d080580"));
401 Assertions.assertEquals(504, page17.getTow());
402 Assertions.assertEquals( 4, page17.getId());
403 Assertions.assertEquals( 1, page17.getDataId());
404 Assertions.assertEquals( 55, page17.getSvId());
405 }
406
407 @Test
408 public void testSubFrame4Page18() {
409 SubFrame4D page18 = (SubFrame4D) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085400b2c647811ff03fc08ff7f301051fffffea4ffffff0ffc930b7128907c048000f00"));
410 Assertions.assertEquals( 139, page18.getPreamble());
411 Assertions.assertEquals( 194, page18.getMessage());
412 Assertions.assertEquals( 0, page18.getIntegrityStatus());
413 Assertions.assertEquals( 534, page18.getTow());
414 Assertions.assertEquals( 0, page18.getAlert());
415 Assertions.assertEquals( 1, page18.getAntiSpoofing());
416 Assertions.assertEquals( 4, page18.getId());
417 Assertions.assertEquals( 1, page18.getDataId());
418 Assertions.assertEquals( 56, page18.getSvId());
419 Assertions.assertEquals( 1.5832483768463135E-8, page18.getAlpha0(), 1.0e-15);
420 Assertions.assertEquals( 6.047563327615444E-7, page18.getAlpha1(), 1.0e-15);
421 Assertions.assertEquals( 1.539999355602027E-6, page18.getAlpha2(), 1.0e-15);
422 Assertions.assertEquals( 3.844682506704244E-9, page18.getAlpha3(), 1.0e-15);
423 Assertions.assertEquals( 129024.0, page18.getBeta0(), 1.0e-15);
424 Assertions.assertEquals( 1267290.9695821572, page18.getBeta1(), 1.0e-15);
425 Assertions.assertEquals( 6640.185091184218, page18.getBeta2(), 1.0e-15);
426 Assertions.assertEquals( 10568.182803070738, page18.getBeta3(), 1.0e-15);
427 Assertions.assertEquals( 1.4901155864777138E-8, page18.getA1(), 1.0e-15);
428 Assertions.assertEquals(-9.313225746154785E-10, page18.getA0(), 1.0e-15);
429 Assertions.assertEquals( 147456, page18.getTot());
430 Assertions.assertEquals( 194, page18.getWeekNumberT());
431 Assertions.assertEquals( 18, page18.getDeltaTLs());
432 Assertions.assertEquals( 137, page18.getWeekNumberLsf());
433 Assertions.assertEquals( 7, page18.getDn());
434 Assertions.assertEquals( 18, page18.getDeltaTLsf());
435 Assertions.assertEquals( 0, page18.getReserved10());
436 }
437
438 @Test
439 public void testSubFrame4Page19() {
440 SubFrame4A1 page19 = (SubFrame4A1) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085400bcc007a8462455cd2b586377bd0162ada731d15f824cc2805767a31bedb12b2780"));
441 Assertions.assertEquals(564, page19.getTow());
442 Assertions.assertEquals( 4, page19.getId());
443 Assertions.assertEquals( 1, page19.getDataId());
444 Assertions.assertEquals( 58, page19.getSvId());
445 }
446
447 @Test
448 public void testSubFrame4Page20() {
449 SubFrame4A1 page20 = (SubFrame4A1) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085400c6cf47b1ef74c48f76b6634b680ce21fc6dc1e416b04c2c0749266de7d218ad940"));
450 Assertions.assertEquals(594, page20.getTow());
451 Assertions.assertEquals( 4, page20.getId());
452 Assertions.assertEquals( 1, page20.getDataId());
453 Assertions.assertEquals( 59, page20.getSvId());
454 }
455
456 @Test
457 public void testSubFrame4Page21() {
458 SubFrame4A0 page21 = (SubFrame4A0) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085400d0c147978c9dcda8a6533a6f2ca78c052ab26a21a7f17a01ce0526c473e1a50a00"));
459 Assertions.assertEquals(624, page21.getTow());
460 Assertions.assertEquals( 4, page21.getId());
461 Assertions.assertEquals( 1, page21.getDataId());
462 Assertions.assertEquals( 57, page21.getSvId());
463 }
464
465 @Test
466 public void testSubFrame4Page22() {
467 SubFrame4A1 page22 = (SubFrame4A1) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085400dac887cba28a19cb45c2edb526417155cea9358a10b72e804cb02d07310876ac40"));
468 Assertions.assertEquals(654, page22.getTow());
469 Assertions.assertEquals( 4, page22.getId());
470 Assertions.assertEquals( 1, page22.getDataId());
471 Assertions.assertEquals( 60, page22.getSvId());
472 }
473
474 @Test
475 public void testSubFrame4Page23() {
476 SubFrame4A1 page23 = (SubFrame4A1) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085400e4cbc7d1a0d4b815fad54cf28e58bd3fb3cbc178da9482c064cfae562eebf580c0"));
477 Assertions.assertEquals(684, page23.getTow());
478 Assertions.assertEquals( 4, page23.getId());
479 Assertions.assertEquals( 1, page23.getDataId());
480 Assertions.assertEquals( 61, page23.getSvId());
481 }
482
483 @Test
484 public void testSubFrame4Page24() {
485 SubFrame4A1 page24 = (SubFrame4A1) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085400eec207e04887f64206ee7d8a2d7572d5e09e14d671b724005fe9a10aceaaaaad00"));
486 Assertions.assertEquals(714, page24.getTow());
487 Assertions.assertEquals( 4, page24.getId());
488 Assertions.assertEquals( 1, page24.getDataId());
489 Assertions.assertEquals( 62, page24.getSvId());
490 }
491
492 @Test
493 public void testSubFrame4Page25() {
494 SubFrame4E page25 = (SubFrame4E) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085400f8cc07fb9bcbeaeaeeffca9ca94ab266663cbbbbcd6aeac025000fc04000000000"));
495 Assertions.assertEquals(139, page25.getPreamble());
496 Assertions.assertEquals(194, page25.getMessage());
497 Assertions.assertEquals( 0, page25.getIntegrityStatus());
498 Assertions.assertEquals(744, page25.getTow());
499 Assertions.assertEquals( 0, page25.getAlert());
500 Assertions.assertEquals( 1, page25.getAntiSpoofing());
501 Assertions.assertEquals( 4, page25.getId());
502 Assertions.assertEquals( 1, page25.getDataId());
503 Assertions.assertEquals( 63, page25.getSvId());
504 Assertions.assertEquals( 11, page25.getAntiSpoofing( 1));
505 Assertions.assertEquals( 9, page25.getAntiSpoofing( 2));
506 Assertions.assertEquals( 11, page25.getAntiSpoofing( 3));
507 Assertions.assertEquals( 12, page25.getAntiSpoofing( 4));
508 Assertions.assertEquals( 10, page25.getAntiSpoofing( 5));
509 Assertions.assertEquals( 11, page25.getAntiSpoofing( 6));
510 Assertions.assertEquals( 10, page25.getAntiSpoofing( 7));
511 Assertions.assertEquals( 11, page25.getAntiSpoofing( 8));
512 Assertions.assertEquals( 11, page25.getAntiSpoofing( 9));
513 Assertions.assertEquals( 11, page25.getAntiSpoofing(10));
514 Assertions.assertEquals( 12, page25.getAntiSpoofing(11));
515 Assertions.assertEquals( 10, page25.getAntiSpoofing(12));
516 Assertions.assertEquals( 9, page25.getAntiSpoofing(13));
517 Assertions.assertEquals( 12, page25.getAntiSpoofing(14));
518 Assertions.assertEquals( 10, page25.getAntiSpoofing(15));
519 Assertions.assertEquals( 9, page25.getAntiSpoofing(16));
520 Assertions.assertEquals( 10, page25.getAntiSpoofing(17));
521 Assertions.assertEquals( 12, page25.getAntiSpoofing(18));
522 Assertions.assertEquals( 9, page25.getAntiSpoofing(19));
523 Assertions.assertEquals( 9, page25.getAntiSpoofing(20));
524 Assertions.assertEquals( 9, page25.getAntiSpoofing(21));
525 Assertions.assertEquals( 9, page25.getAntiSpoofing(22));
526 Assertions.assertEquals( 12, page25.getAntiSpoofing(23));
527 Assertions.assertEquals( 11, page25.getAntiSpoofing(24));
528 Assertions.assertEquals( 11, page25.getAntiSpoofing(25));
529 Assertions.assertEquals( 11, page25.getAntiSpoofing(26));
530 Assertions.assertEquals( 11, page25.getAntiSpoofing(27));
531 Assertions.assertEquals( 12, page25.getAntiSpoofing(28));
532 Assertions.assertEquals( 10, page25.getAntiSpoofing(29));
533 Assertions.assertEquals( 11, page25.getAntiSpoofing(30));
534 Assertions.assertEquals( 10, page25.getAntiSpoofing(31));
535 Assertions.assertEquals( 11, page25.getAntiSpoofing(32));
536 Assertions.assertEquals( 0, page25.getReserved8());
537 Assertions.assertEquals( 0, page25.getSvHealth(1));
538 Assertions.assertEquals( 0, page25.getSvHealth(2));
539 Assertions.assertEquals( 63, page25.getSvHealth(3));
540 Assertions.assertEquals( 0, page25.getSvHealth(4));
541 Assertions.assertEquals( 0, page25.getSvHealth(5));
542 Assertions.assertEquals( 0, page25.getSvHealth(6));
543 Assertions.assertEquals( 0, page25.getSvHealth(7));
544 Assertions.assertEquals( 0, page25.getSvHealth(8));
545 Assertions.assertEquals( 0, page25.getReserved10());
546 }
547
548 @Test
549 public void testSubFrame4Page26() {
550 SubFrame4A0 page26 = (SubFrame4A0) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b0308540102cd07978c9dcda8a6533a6f2ca78c052ab26a21a7f17a01ce0526c4732e9bb840"));
551 Assertions.assertEquals(774, page26.getTow());
552 Assertions.assertEquals( 4, page26.getId());
553 Assertions.assertEquals( 1, page26.getDataId());
554 Assertions.assertEquals( 57, page26.getSvId());
555 }
556
557 @Test
558 public void testSubFrame5Almanac() {
559 SubFrameAlmanac almanac = (SubFrameAlmanac) SubFrame.parse(new HexadecimalSequenceEncodedMessage("8b03085412acda043242dece45a69afd4300de8436811f6b0e290a9631922b9fd70b38007040"));
560 Assertions.assertEquals( 14340, almanac.getTow());
561 Assertions.assertEquals( 5, almanac.getId());
562 Assertions.assertEquals( 1, almanac.getDataId());
563 Assertions.assertEquals( 3, almanac.getSvId());
564 Assertions.assertEquals( 3, almanac.getPRN());
565 Assertions.assertEquals( 233472, almanac.getToaA());
566 Assertions.assertEquals( 0.03467036265119664, almanac.getDeltai(), 1.0e-15);
567 Assertions.assertEquals(7.410022942913008e-7, almanac.getOmegaDot(), 1.0e-15);
568 Assertions.assertEquals( 0, almanac.getSvHealth());
569 Assertions.assertEquals( 5153.703125, almanac.getSqrtA(), 1.0e-15);
570 Assertions.assertEquals( 6.054706808373034, almanac.getUppercaseOmega0(), 1.0e-15);
571 Assertions.assertEquals( 1.039346136184126, almanac.getLowercaseOmega(), 1.0e-15);
572 Assertions.assertEquals( 1.07070323515602, almanac.getM0(), 1.0e-15);
573 Assertions.assertEquals( 0.0015783309936523438, almanac.getAF0(), 1.0e-15);
574 Assertions.assertEquals( 0.0, almanac.getAF1(), 1.0e-15);
575 }
576
577 }