1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.ccsds.ndm.cdm;
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.time.AbsoluteDate;
24
25
26
27
28 public class CdmRelativeMetaDataTest {
29
30
31 @Test
32 public void testCheckScreenVolumeConditions() {
33
34 final CdmRelativeMetadata meta = new CdmRelativeMetadata();
35 meta.setScreenType(ScreenType.SHAPE);
36
37
38 try {
39 meta.checkScreenVolumeConditions();
40 Assertions.fail("an exception should have been thrown");
41 } catch (OrekitException oe) {
42 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
43 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_ENTRY_TIME, oe.getParts()[0]);
44 }
45 meta.setScreenEntryTime(AbsoluteDate.ARBITRARY_EPOCH);
46
47
48 try {
49 meta.checkScreenVolumeConditions();
50 Assertions.fail("an exception should have been thrown");
51 } catch (OrekitException oe) {
52 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
53 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_EXIT_TIME, oe.getParts()[0]);
54 }
55 meta.setScreenExitTime(AbsoluteDate.ARBITRARY_EPOCH);
56
57
58 try {
59 meta.checkScreenVolumeConditions();
60 Assertions.fail("an exception should have been thrown");
61 } catch (OrekitException oe) {
62 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
63 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_VOLUME_SHAPE, oe.getParts()[0]);
64 }
65
66
67 meta.setScreenVolumeShape(ScreenVolumeShape.SPHERE);
68 try {
69 meta.checkScreenVolumeConditions();
70 Assertions.fail("an exception should have been thrown");
71 } catch (OrekitException oe) {
72 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
73 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_VOLUME_RADIUS, oe.getParts()[0]);
74 }
75
76
77 meta.setScreenVolumeShape(ScreenVolumeShape.SPHERE);
78 meta.setScreenVolumeRadius(1.);
79 meta.checkScreenVolumeConditions();
80 Assertions.assertEquals(1., meta.getScreenVolumeRadius(), 0.);
81
82
83 final ScreenVolumeShape[] shapes = new ScreenVolumeShape[] { ScreenVolumeShape.BOX, ScreenVolumeShape.ELLIPSOID };
84
85 for (final ScreenVolumeShape shape : shapes) {
86
87 meta.setScreenVolumeShape(shape);
88
89
90 meta.setScreenVolumeFrame(null);
91 meta.setScreenVolumeX(Double.NaN);
92 meta.setScreenVolumeY(Double.NaN);
93 meta.setScreenVolumeZ(Double.NaN);
94
95
96 try {
97 meta.checkScreenVolumeConditions();
98 Assertions.fail("an exception should have been thrown");
99 } catch (OrekitException oe) {
100 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
101 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_VOLUME_FRAME, oe.getParts()[0]);
102 }
103 meta.setScreenVolumeFrame(ScreenVolumeFrame.RTN);
104
105
106 try {
107 meta.checkScreenVolumeConditions();
108 Assertions.fail("an exception should have been thrown");
109 } catch (OrekitException oe) {
110 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
111 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_VOLUME_X, oe.getParts()[0]);
112 }
113 meta.setScreenVolumeX(1.);
114
115
116 try {
117 meta.checkScreenVolumeConditions();
118 Assertions.fail("an exception should have been thrown");
119 } catch (OrekitException oe) {
120 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
121 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_VOLUME_Y, oe.getParts()[0]);
122 }
123 meta.setScreenVolumeY(1.);
124
125
126 try {
127 meta.checkScreenVolumeConditions();
128 Assertions.fail("an exception should have been thrown");
129 } catch (OrekitException oe) {
130 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
131 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_VOLUME_Z, oe.getParts()[0]);
132 }
133 meta.setScreenVolumeZ(1.);
134 }
135
136
137 meta.setScreenType(ScreenType.PC);
138 try {
139 meta.checkScreenVolumeConditions();
140 Assertions.fail("an exception should have been thrown");
141 } catch (OrekitException oe) {
142 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
143 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_PC_THRESHOLD, oe.getParts()[0]);
144 }
145 meta.setScreenType(ScreenType.PC_MAX);
146 try {
147 meta.checkScreenVolumeConditions();
148 Assertions.fail("an exception should have been thrown");
149 } catch (OrekitException oe) {
150 Assertions.assertEquals(OrekitMessages.CCSDS_MISSING_KEYWORD, oe.getSpecifier());
151 Assertions.assertEquals(CdmRelativeMetadataKey.SCREEN_PC_THRESHOLD, oe.getParts()[0]);
152 }
153
154
155 meta.setScreenPcThreshold(1.);
156 meta.checkScreenVolumeConditions();
157 meta.setScreenType(ScreenType.PC);
158 meta.checkScreenVolumeConditions();
159
160
161 meta.setCollisionPercentile(null);
162 Assertions.assertEquals(null, meta.getCollisionPercentile());
163 }
164 }