1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package org.hipparchus.geometry.euclidean.threed;
24
25 import java.lang.reflect.Field;
26
27 import org.hipparchus.exception.MathIllegalStateException;
28 import org.hipparchus.geometry.LocalizedGeometryFormats;
29 import org.junit.Assert;
30 import org.junit.Test;
31
32
33 public class RotationOrderTest {
34
35 @Test
36 public void testName() {
37
38 RotationOrder[] orders = {
39 RotationOrder.XYZ, RotationOrder.XZY, RotationOrder.YXZ,
40 RotationOrder.YZX, RotationOrder.ZXY, RotationOrder.ZYX,
41 RotationOrder.XYX, RotationOrder.XZX, RotationOrder.YXY,
42 RotationOrder.YZY, RotationOrder.ZXZ, RotationOrder.ZYZ
43 };
44
45 for (int i = 0; i < orders.length; ++i) {
46 Assert.assertEquals(getFieldName(orders[i]), orders[i].toString());
47 }
48
49 }
50
51 @Test
52 public void testIssue72() {
53 for (RotationOrder order : RotationOrder.values()) {
54 RotationOrder buildOrder = RotationOrder.getRotationOrder(order.toString());
55 Assert.assertEquals(0.0, Vector3D.distance1(order.getA1(), buildOrder.getA1()), Double.MIN_VALUE);
56 Assert.assertEquals(0.0, Vector3D.distance1(order.getA2(), buildOrder.getA2()), Double.MIN_VALUE);
57 Assert.assertEquals(0.0, Vector3D.distance1(order.getA3(), buildOrder.getA3()), Double.MIN_VALUE);
58 }
59 }
60
61 @Test
62 public void testIssue72InvalidName() {
63 String wrongName = "BCE";
64 try {
65 RotationOrder.getRotationOrder(wrongName);
66 } catch (MathIllegalStateException mise) {
67 Assert.assertEquals(LocalizedGeometryFormats.INVALID_ROTATION_ORDER_NAME, mise.getSpecifier());
68 Assert.assertEquals(wrongName, mise.getParts()[0]);
69 }
70 }
71
72
73 private String getFieldName(RotationOrder order) {
74 try {
75 Field[] fields = RotationOrder.class.getFields();
76 for (int i = 0; i < fields.length; ++i) {
77 if (fields[i].get(null) == order) {
78 return fields[i].getName();
79 }
80 }
81 } catch (IllegalAccessException iae) {
82
83 }
84 return "unknown";
85 }
86
87 }