00001 00034 #include "linden_common.h" 00035 #include "lltut.h" 00036 #include "v3color.h" 00037 #include "v4math.h" 00038 #include "m4math.h" 00039 #include "llsdutil.h" 00040 00041 00042 namespace tut 00043 { 00044 struct llsdutil_data 00045 { 00046 }; 00047 typedef test_group<llsdutil_data> llsdutil_test;; 00048 typedef llsdutil_test::object llsdutil_object; 00049 tut::llsdutil_test tutil("llsdutil"); 00050 00051 template<> template<> 00052 void llsdutil_object::test<1>() 00053 { 00054 LLSD sd; 00055 U64 valueIn , valueOut; 00056 valueIn = U64L(0xFEDCBA9876543210); 00057 sd = ll_sd_from_U64(valueIn); 00058 valueOut = ll_U64_from_sd(sd); 00059 ensure_equals("U64 valueIn->sd->valueOut", valueIn, valueOut); 00060 } 00061 00062 template<> template<> 00063 void llsdutil_object::test<2>() 00064 { 00065 LLSD sd; 00066 U32 valueIn, valueOut; 00067 valueIn = 0x87654321; 00068 sd = ll_sd_from_U32(valueIn); 00069 valueOut = ll_U32_from_sd(sd); 00070 ensure_equals("U32 valueIn->sd->valueOut", valueIn, valueOut); 00071 } 00072 00073 template<> template<> 00074 void llsdutil_object::test<3>() 00075 { 00076 U32 valueIn, valueOut; 00077 valueIn = 0x87654321; 00078 LLSD sd; 00079 sd = ll_sd_from_ipaddr(valueIn); 00080 valueOut = ll_ipaddr_from_sd(sd); 00081 ensure_equals("valueIn->sd->valueOut", valueIn, valueOut); 00082 } 00083 00084 template<> template<> 00085 void llsdutil_object::test<4>() 00086 { 00087 LLSD sd; 00088 LLVector3 vec1(-1.0, 2.0, -3.0); 00089 sd = ll_sd_from_vector3(vec1); 00090 LLVector3 vec2 = ll_vector3_from_sd(sd); 00091 ensure_equals("vector3 -> sd -> vector3: 1", vec1, vec2); 00092 00093 LLVector3 vec3(sd); 00094 ensure_equals("vector3 -> sd -> vector3: 2", vec1, vec3); 00095 00096 sd.clear(); 00097 vec1.setVec(0., 0., 0.); 00098 sd = ll_sd_from_vector3(vec1); 00099 vec2 = ll_vector3_from_sd(sd); 00100 ensure_equals("vector3 -> sd -> vector3: 3", vec1, vec2); 00101 sd.clear(); 00102 } 00103 00104 template<> template<> 00105 void llsdutil_object::test<5>() 00106 { 00107 LLSD sd; 00108 LLVector3d vec1((F64)(U64L(0xFEDCBA9876543210) << 2), -1., 0); 00109 sd = ll_sd_from_vector3d(vec1); 00110 LLVector3d vec2 = ll_vector3d_from_sd(sd); 00111 ensure_equals("vector3d -> sd -> vector3d: 1", vec1, vec2); 00112 00113 LLVector3d vec3(sd); 00114 ensure_equals("vector3d -> sd -> vector3d : 2", vec1, vec3); 00115 } 00116 00117 template<> template<> 00118 void llsdutil_object::test<6>() 00119 { 00120 LLSD sd; 00121 LLVector2 vec((F32) -3., (F32) 4.2); 00122 sd = ll_sd_from_vector2(vec); 00123 LLVector2 vec1 = ll_vector2_from_sd(sd); 00124 ensure_equals("vector2 -> sd -> vector2", vec, vec1); 00125 00126 LLSD sd2 = ll_sd_from_vector2(vec1); 00127 ensure_equals("sd -> vector2 -> sd: 2", sd, sd2); 00128 } 00129 00130 template<> template<> 00131 void llsdutil_object::test<7>() 00132 { 00133 LLSD sd; 00134 LLQuaternion quat((F32) 1., (F32) -0.98, (F32) 2.3, (F32) 0xffff); 00135 sd = ll_sd_from_quaternion(quat); 00136 LLQuaternion quat1 = ll_quaternion_from_sd(sd); 00137 ensure_equals("LLQuaternion -> sd -> LLQuaternion", quat, quat1); 00138 00139 LLSD sd2 = ll_sd_from_quaternion(quat1); 00140 ensure_equals("sd -> LLQuaternion -> sd ", sd, sd2); 00141 } 00142 00143 template<> template<> 00144 void llsdutil_object::test<8>() 00145 { 00146 LLSD sd; 00147 LLColor4 c(1.0f, 2.2f, 4.0f, 7.f); 00148 sd = ll_sd_from_color4(c); 00149 LLColor4 c1 =ll_color4_from_sd(sd); 00150 ensure_equals("LLColor4 -> sd -> LLColor4", c, c1); 00151 00152 LLSD sd1 = ll_sd_from_color4(c1); 00153 ensure_equals("sd -> LLColor4 -> sd", sd, sd1); 00154 } 00155 }