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 }