1
+ /*
2
+ * Copyright (c) 2024 jMonkeyEngine
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are
7
+ * met:
8
+ *
9
+ * * Redistributions of source code must retain the above copyright
10
+ * notice, this list of conditions and the following disclaimer.
11
+ *
12
+ * * Redistributions in binary form must reproduce the above copyright
13
+ * notice, this list of conditions and the following disclaimer in the
14
+ * documentation and/or other materials provided with the distribution.
15
+ *
16
+ * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
17
+ * may be used to endorse or promote products derived from this software
18
+ * without specific prior written permission.
19
+ *
20
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ */
32
+ package com .jme3 .math ;
33
+
34
+ import junit .framework .TestCase ;
35
+
36
+ /**
37
+ * Verifies that the {@link Quaternion} class works correctly.
38
+ *
39
+ * @author Richard Tingle (aka Richtea)
40
+ */
41
+ public class QuaternionTest extends TestCase {
42
+
43
+ /**
44
+ * Verify that the {@link Quaternion#isValidQuaternion(com.jme3.math.Quaternion)} method works correctly. Testing
45
+ * for NaNs and infinities (which are not "valid")
46
+ */
47
+ public void testIsValidQuaternion (){
48
+ assertFalse (Quaternion .isValidQuaternion (new Quaternion (Float .NaN , 2.1f , 3.0f , 1.5f )));
49
+ assertFalse (Quaternion .isValidQuaternion (new Quaternion (1f , Float .NaN , 3.0f , 1.5f )));
50
+ assertFalse (Quaternion .isValidQuaternion (new Quaternion (1f , 2.1f , Float .NaN , 1.5f )));
51
+ assertFalse (Quaternion .isValidQuaternion (new Quaternion (1f , 2.1f , 3.0f , Float .NaN )));
52
+ assertFalse (Quaternion .isValidQuaternion (new Quaternion (Float .POSITIVE_INFINITY , 1.5f , 1.9f , 2.0f )));
53
+ assertFalse (Quaternion .isValidQuaternion (new Quaternion (Float .NEGATIVE_INFINITY , 2.5f , 8.2f , 3.0f )));
54
+ assertFalse (Quaternion .isValidQuaternion (null ));
55
+
56
+ assertTrue (Quaternion .isValidQuaternion (new Quaternion ()));
57
+ assertTrue (Quaternion .isValidQuaternion (new Quaternion (1.5f , -5.7f , 8.2f , 3.0f )));
58
+ }
59
+ }
0 commit comments