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