1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.frames;
18
19 import org.junit.jupiter.api.Assertions;
20 import org.junit.jupiter.api.BeforeEach;
21 import org.junit.jupiter.api.Test;
22 import org.orekit.Utils;
23 import org.orekit.errors.OrekitException;
24 import org.orekit.errors.OrekitMessages;
25
26 import java.util.Arrays;
27
28 public class OrphanFrameTest {
29
30 @Test
31 public void testNotAttached() {
32
33 OrphanFrame level0 = new OrphanFrame("l0");
34 OrphanFrame level1A = new OrphanFrame("l1A");
35 OrphanFrame level1B = new OrphanFrame("l1B");
36 OrphanFrame level2 = new OrphanFrame("l2");
37
38 level0.addChild(level1A, Transform.IDENTITY, false);
39 level0.addChild(level1B, Transform.IDENTITY, false);
40 level1B.addChild(level2, Transform.IDENTITY, false);
41
42 Assertions.assertEquals(2, level0.getChildren().size());
43 Assertions.assertEquals(0, level1A.getChildren().size());
44 Assertions.assertEquals(1, level1B.getChildren().size());
45 Assertions.assertEquals(0, level2.getChildren().size());
46
47 for (OrphanFrame of : Arrays.asList(level0, level1A, level1B, level2)) {
48 try {
49 of.getFrame();
50 Assertions.fail("an exception should have been thrown");
51 } catch (OrekitException oe) {
52 Assertions.assertEquals(OrekitMessages.FRAME_NOT_ATTACHED, oe.getSpecifier());
53 }
54 }
55
56 }
57
58 @Test
59 public void testAlreadyAttachedSubTree() {
60 OrphanFrame level0 = new OrphanFrame("l0");
61 OrphanFrame level1 = new OrphanFrame("l1");
62 level0.addChild(level1, Transform.IDENTITY, false);
63 try {
64 level0.addChild(level1, Transform.IDENTITY, false);
65 Assertions.fail("an exception should have been thrown");
66 } catch (OrekitException oe) {
67 Assertions.assertEquals(OrekitMessages.FRAME_ALREADY_ATTACHED, oe.getSpecifier());
68 }
69 }
70
71 @Test
72 public void testAlreadyAttachedMainTree() {
73 OrphanFrame level0 = new OrphanFrame("l0");
74 level0.attachTo(FramesFactory.getGCRF(), Transform.IDENTITY, false);
75 try {
76 level0.attachTo(FramesFactory.getEME2000(), Transform.IDENTITY, false);
77 Assertions.fail("an exception should have been thrown");
78 } catch (OrekitException oe) {
79 Assertions.assertEquals(OrekitMessages.FRAME_ALREADY_ATTACHED, oe.getSpecifier());
80 }
81 }
82
83 @Test
84 public void testSimpleUse() {
85 OrphanFrame level0 = new OrphanFrame("l0");
86 OrphanFrame level1A = new OrphanFrame("l1A");
87 OrphanFrame level1B = new OrphanFrame("l1B");
88 OrphanFrame level2 = new OrphanFrame("l2");
89 level0.addChild(level1A, Transform.IDENTITY, false);
90 level0.addChild(level1B, Transform.IDENTITY, false);
91 level1B.addChild(level2, Transform.IDENTITY, false);
92 level0.attachTo(FramesFactory.getGCRF(), Transform.IDENTITY, false);
93 Assertions.assertEquals(1, level0.getFrame().getDepth());
94 Assertions.assertEquals(level0.toString(), level0.getFrame().getName());
95 Assertions.assertEquals(2, level1A.getFrame().getDepth());
96 Assertions.assertEquals(level1A.toString(), level1A.getFrame().getName());
97 Assertions.assertEquals(2, level1B.getFrame().getDepth());
98 Assertions.assertEquals(level1B.toString(), level1B.getFrame().getName());
99 Assertions.assertEquals(3, level2.getFrame().getDepth());
100 Assertions.assertEquals(level2.toString(), level2.getFrame().getName());
101 }
102
103 @Test
104 public void testLateAddition() {
105 OrphanFrame level0 = new OrphanFrame("l0");
106 OrphanFrame level1A = new OrphanFrame("l1A");
107 OrphanFrame level1B = new OrphanFrame("l1B");
108 OrphanFrame level2 = new OrphanFrame("l2");
109 level0.addChild(level1A, Transform.IDENTITY, false);
110 level0.addChild(level1B, Transform.IDENTITY, false);
111
112 level0.attachTo(FramesFactory.getGCRF(), Transform.IDENTITY, false);
113 Assertions.assertEquals(1, level0.getFrame().getDepth());
114 Assertions.assertEquals(level0.toString(), level0.getFrame().getName());
115 Assertions.assertEquals(2, level1A.getFrame().getDepth());
116 Assertions.assertEquals(level1A.toString(), level1A.getFrame().getName());
117 Assertions.assertEquals(2, level1B.getFrame().getDepth());
118 Assertions.assertEquals(level1B.toString(), level1B.getFrame().getName());
119
120
121 try {
122 level2.getFrame();
123 Assertions.fail("an exception should have been thrown");
124 } catch (OrekitException oe) {
125 Assertions.assertEquals(OrekitMessages.FRAME_NOT_ATTACHED, oe.getSpecifier());
126 }
127
128
129 level1B.addChild(level2, Transform.IDENTITY, false);
130
131
132 Assertions.assertEquals(3, level2.getFrame().getDepth());
133 Assertions.assertEquals(level2.toString(), level2.getFrame().getName());
134
135 }
136
137 @BeforeEach
138 public void setUp() {
139 Utils.setDataRoot("compressed-data");
140 }
141
142 }