diff options
Diffstat (limited to 'main/tests/test_math.cpp')
| -rw-r--r-- | main/tests/test_math.cpp | 242 |
1 files changed, 108 insertions, 134 deletions
diff --git a/main/tests/test_math.cpp b/main/tests/test_math.cpp index 4b686e8af..e760d1ec7 100644 --- a/main/tests/test_math.cpp +++ b/main/tests/test_math.cpp @@ -27,38 +27,35 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "test_math.h" -#include "ustring.h" -#include "print_string.h" -#include "transform.h" -#include "matrix3.h" -#include "math_funcs.h" #include "camera_matrix.h" -#include "scene/main/node.h" -#include "variant.h" -#include "servers/visual/shader_language.h" +#include "math_funcs.h" +#include "matrix3.h" #include "os/keyboard.h" +#include "os/os.h" +#include "print_string.h" +#include "scene/main/node.h" #include "scene/resources/texture.h" +#include "servers/visual/shader_language.h" +#include "transform.h" +#include "ustring.h" +#include "variant.h" #include "vmap.h" -#include "os/os.h" #include "method_ptrcall.h" namespace TestMath { - void test_vec(Plane p_vec) { - CameraMatrix cm; - cm.set_perspective(45,1,0,100); - Plane v0=cm.xform4(p_vec); - - print_line("out: "+v0); - v0.normal.z = (v0.d/100.0 *2.0-1.0) * v0.d; - print_line("out_F: "+v0); + cm.set_perspective(45, 1, 0, 100); + Plane v0 = cm.xform4(p_vec); + print_line("out: " + v0); + v0.normal.z = (v0.d / 100.0 * 2.0 - 1.0) * v0.d; + print_line("out_F: " + v0); -/*v0: 0, 0, -0.1, 0.1 + /*v0: 0, 0, -0.1, 0.1 v1: 0, 0, 0, 0.1 fix: 0, 0, 0, 0.1 v0: 0, 0, 1.302803, 1.5 @@ -74,46 +71,39 @@ v0: 0, 0, 100, 100 v1: 0, 0, 100, 100 fix: 0, 0, 100, 100 */ - - } -uint32_t ihash( uint32_t a) -{ - a = (a+0x7ed55d16) + (a<<12); - a = (a^0xc761c23c) ^ (a>>19); - a = (a+0x165667b1) + (a<<5); - a = (a+0xd3a2646c) ^ (a<<9); - a = (a+0xfd7046c5) + (a<<3); - a = (a^0xb55a4f09) ^ (a>>16); - return a; +uint32_t ihash(uint32_t a) { + a = (a + 0x7ed55d16) + (a << 12); + a = (a ^ 0xc761c23c) ^ (a >> 19); + a = (a + 0x165667b1) + (a << 5); + a = (a + 0xd3a2646c) ^ (a << 9); + a = (a + 0xfd7046c5) + (a << 3); + a = (a ^ 0xb55a4f09) ^ (a >> 16); + return a; } -uint32_t ihash2( uint32_t a) { - a = (a ^ 61) ^ (a >> 16); - a = a + (a << 3); - a = a ^ (a >> 4); - a = a * 0x27d4eb2d; - a = a ^ (a >> 15); - return a; +uint32_t ihash2(uint32_t a) { + a = (a ^ 61) ^ (a >> 16); + a = a + (a << 3); + a = a ^ (a >> 4); + a = a * 0x27d4eb2d; + a = a ^ (a >> 15); + return a; } -uint32_t ihash3( uint32_t a) -{ - a = (a+0x479ab41d) + (a<<8); - a = (a^0xe4aa10ce) ^ (a>>5); - a = (a+0x9942f0a6) - (a<<14); - a = (a^0x5aedd67d) ^ (a>>3); - a = (a+0x17bea992) + (a<<7); - return a; +uint32_t ihash3(uint32_t a) { + a = (a + 0x479ab41d) + (a << 8); + a = (a ^ 0xe4aa10ce) ^ (a >> 5); + a = (a + 0x9942f0a6) - (a << 14); + a = (a ^ 0x5aedd67d) ^ (a >> 3); + a = (a + 0x17bea992) + (a << 7); + return a; } +MainLoop *test() { - - -MainLoop* test() { - - print_line(itos(Math::step_decimals( 0.0001 ))); + print_line(itos(Math::step_decimals(0.0001))); return NULL; { @@ -122,35 +112,33 @@ MainLoop* test() { List<StringName> tl; ObjectTypeDB::get_type_list(&tl); - - for (List<StringName>::Element *E=tl.front();E;E=E->next()) { + for (List<StringName>::Element *E = tl.front(); E; E = E->next()) { Vector<uint8_t> m5b = E->get().operator String().md5_buffer(); hashes.push_back(hashes.size()); - } //hashes.resize(50); - for(int i=nearest_shift(hashes.size());i<20;i++) { + for (int i = nearest_shift(hashes.size()); i < 20; i++) { - bool success=true; - for(int s=0;s<10000;s++) { + bool success = true; + for (int s = 0; s < 10000; s++) { Set<uint32_t> existing; - success=true; + success = true; - for(int j=0;j<hashes.size();j++) { + for (int j = 0; j < hashes.size(); j++) { - uint32_t eh = ihash2(ihash3(hashes[j]+ihash(s)+s))&((1<<i)-1); + uint32_t eh = ihash2(ihash3(hashes[j] + ihash(s) + s)) & ((1 << i) - 1); if (existing.has(eh)) { - success=false; + success = false; break; } existing.insert(eh); } if (success) { - print_line("success at "+itos(i)+"/"+itos(nearest_shift(hashes.size()))+" shift "+itos(s)); + print_line("success at " + itos(i) + "/" + itos(nearest_shift(hashes.size())) + " shift " + itos(s)); break; } } @@ -160,47 +148,42 @@ MainLoop* test() { print_line("DONE"); - - return NULL; } { - - // print_line("NUM: "+itos(237641278346127)); - print_line("NUM: "+itos(-128)); + // print_line("NUM: "+itos(237641278346127)); + print_line("NUM: " + itos(-128)); return NULL; - } - { - Vector3 v(1,2,3); + Vector3 v(1, 2, 3); v.normalize(); - float a=0.3; + float a = 0.3; //Quat q(v,a); - Matrix3 m(v,a); + Matrix3 m(v, a); - Vector3 v2(7,3,1); + Vector3 v2(7, 3, 1); v2.normalize(); - float a2=0.8; + float a2 = 0.8; //Quat q(v,a); - Matrix3 m2(v2,a2); + Matrix3 m2(v2, a2); - Quat q=m; - Quat q2=m2; + Quat q = m; + Quat q2 = m2; Matrix3 m3 = m.inverse() * m2; - Quat q3 = (q.inverse() * q2);//.normalized(); + Quat q3 = (q.inverse() * q2); //.normalized(); print_line(Quat(m3)); print_line(q3); - print_line("before v: "+v+" a: "+rtos(a)); - q.get_axis_and_angle(v,a); - print_line("after v: "+v+" a: "+rtos(a)); + print_line("before v: " + v + " a: " + rtos(a)); + q.get_axis_and_angle(v, a); + print_line("after v: " + v + " a: " + rtos(a)); } return NULL; @@ -208,98 +191,91 @@ MainLoop* test() { List<String> args; args.push_back("-l"); - Error err = OS::get_singleton()->execute("/bin/ls",args,true,NULL,&ret); - print_line("error: "+itos(err)); + Error err = OS::get_singleton()->execute("/bin/ls", args, true, NULL, &ret); + print_line("error: " + itos(err)); print_line(ret); return NULL; Matrix3 m3; - m3.rotate(Vector3(1,0,0),0.2); - m3.rotate(Vector3(0,1,0),1.77); - m3.rotate(Vector3(0,0,1),212); + m3.rotate(Vector3(1, 0, 0), 0.2); + m3.rotate(Vector3(0, 1, 0), 1.77); + m3.rotate(Vector3(0, 0, 1), 212); Matrix3 m32; m32.set_euler(m3.get_euler()); - print_line("ELEULEEEEEEEEEEEEEEEEEER: "+m3.get_euler()+" vs "+m32.get_euler()); - + print_line("ELEULEEEEEEEEEEEEEEEEEER: " + m3.get_euler() + " vs " + m32.get_euler()); return NULL; { Dictionary d; - d["momo"]=1; - Dictionary b=d; - b["44"]=4; + d["momo"] = 1; + Dictionary b = d; + b["44"] = 4; } - - return NULL; - print_line("inters: "+rtos(Geometry::segment_intersects_circle(Vector2(-5,0),Vector2(-2,0),Vector2(),1.0))); - + print_line("inters: " + rtos(Geometry::segment_intersects_circle(Vector2(-5, 0), Vector2(-2, 0), Vector2(), 1.0))); - - print_line("cross: "+Vector3(1,2,3).cross(Vector3(4,5,7))); - print_line("dot: "+rtos(Vector3(1,2,3).dot(Vector3(4,5,7)))); - print_line("abs: "+Vector3(-1,2,-3).abs()); - print_line("distance_to: "+rtos(Vector3(1,2,3).distance_to(Vector3(4,5,7)))); - print_line("distance_squared_to: "+rtos(Vector3(1,2,3).distance_squared_to(Vector3(4,5,7)))); - print_line("plus: "+(Vector3(1,2,3)+Vector3(Vector3(4,5,7)))); - print_line("minus: "+(Vector3(1,2,3)-Vector3(Vector3(4,5,7)))); - print_line("mul: "+(Vector3(1,2,3)*Vector3(Vector3(4,5,7)))); - print_line("div: "+(Vector3(1,2,3)/Vector3(Vector3(4,5,7)))); - print_line("mul scalar: "+(Vector3(1,2,3)*2)); - print_line("premul scalar: "+(2*Vector3(1,2,3))); - print_line("div scalar: "+(Vector3(1,2,3)/3.0)); - print_line("length: "+rtos(Vector3(1,2,3).length())); - print_line("length squared: "+rtos(Vector3(1,2,3).length_squared())); - print_line("normalized: "+Vector3(1,2,3).normalized()); - print_line("inverse: "+Vector3(1,2,3).inverse()); + print_line("cross: " + Vector3(1, 2, 3).cross(Vector3(4, 5, 7))); + print_line("dot: " + rtos(Vector3(1, 2, 3).dot(Vector3(4, 5, 7)))); + print_line("abs: " + Vector3(-1, 2, -3).abs()); + print_line("distance_to: " + rtos(Vector3(1, 2, 3).distance_to(Vector3(4, 5, 7)))); + print_line("distance_squared_to: " + rtos(Vector3(1, 2, 3).distance_squared_to(Vector3(4, 5, 7)))); + print_line("plus: " + (Vector3(1, 2, 3) + Vector3(Vector3(4, 5, 7)))); + print_line("minus: " + (Vector3(1, 2, 3) - Vector3(Vector3(4, 5, 7)))); + print_line("mul: " + (Vector3(1, 2, 3) * Vector3(Vector3(4, 5, 7)))); + print_line("div: " + (Vector3(1, 2, 3) / Vector3(Vector3(4, 5, 7)))); + print_line("mul scalar: " + (Vector3(1, 2, 3) * 2)); + print_line("premul scalar: " + (2 * Vector3(1, 2, 3))); + print_line("div scalar: " + (Vector3(1, 2, 3) / 3.0)); + print_line("length: " + rtos(Vector3(1, 2, 3).length())); + print_line("length squared: " + rtos(Vector3(1, 2, 3).length_squared())); + print_line("normalized: " + Vector3(1, 2, 3).normalized()); + print_line("inverse: " + Vector3(1, 2, 3).inverse()); { - Vector3 v(4,5,7); + Vector3 v(4, 5, 7); v.normalize(); - print_line("normalize: "+v); + print_line("normalize: " + v); } { - Vector3 v(4,5,7); - v+=Vector3(1,2,3); - print_line("+=: "+v); + Vector3 v(4, 5, 7); + v += Vector3(1, 2, 3); + print_line("+=: " + v); } { - Vector3 v(4,5,7); - v-=Vector3(1,2,3); - print_line("-=: "+v); + Vector3 v(4, 5, 7); + v -= Vector3(1, 2, 3); + print_line("-=: " + v); } { - Vector3 v(4,5,7); - v*=Vector3(1,2,3); - print_line("*=: "+v); + Vector3 v(4, 5, 7); + v *= Vector3(1, 2, 3); + print_line("*=: " + v); } { - Vector3 v(4,5,7); - v/=Vector3(1,2,3); - print_line("/=: "+v); + Vector3 v(4, 5, 7); + v /= Vector3(1, 2, 3); + print_line("/=: " + v); } { - Vector3 v(4,5,7); - v*=2.0; - print_line("scalar *=: "+v); + Vector3 v(4, 5, 7); + v *= 2.0; + print_line("scalar *=: " + v); } { - Vector3 v(4,5,7); - v/=2.0; - print_line("scalar /=: "+v); + Vector3 v(4, 5, 7); + v /= 2.0; + print_line("scalar /=: " + v); } - - #if 0 print_line(String("C:\\momo\\.\\popo\\..\\gongo").simplify_path()); print_line(String("res://../popo/..//gongo").simplify_path()); @@ -381,7 +357,5 @@ MainLoop* test() { #endif return NULL; - } - } |
