| 1149 | |
| 1150 | |
| 1151 | void |
| 1152 | testEuler () |
| 1153 | { |
| 1154 | object mainModule ((handle<> (borrowed (PyImport_AddModule ("__main__"))))); |
| 1155 | object mainNamespace = mainModule.attr ("__dict__"); |
| 1156 | |
| 1157 | std::cerr << "Testing Euler*:\n"; |
| 1158 | |
| 1159 | std::string code = |
| 1160 | "from imath import *\n" |
| 1161 | "ef = Eulerf (V3f(1.1, 2.2, 3.3), EULER_XZY)\n" |
| 1162 | "ed = Eulerd (V3d(4.4, 5.5, 6.6), EULER_ZYX)\n" |
| 1163 | "i = 1\n" |
| 1164 | "from wrap import *\n" |
| 1165 | "w = wrap ('Eulerf')\n" |
| 1166 | "assert equal (w.x, 1.1, 1e-6)\n" |
| 1167 | "assert equal (w.y, 2.2, 1e-6)\n" |
| 1168 | "assert equal (w.z, 3.3, 1e-6)\n" |
| 1169 | "assert w.order() == EULER_XZY\n" |
| 1170 | "w = wrap ('Eulerd')\n" |
| 1171 | "assert equal (w.x, 1.1, 1e-6)\n" |
| 1172 | "assert equal (w.y, 2.2, 1e-6)\n" |
| 1173 | "assert equal (w.z, 3.3, 1e-6)\n" |
| 1174 | "assert w.order() == EULER_XZY\n"; |
| 1175 | |
| 1176 | handle<> ignored (PyRun_String (code.c_str(), Py_file_input, |
| 1177 | mainNamespace.ptr(), mainNamespace.ptr())); |
| 1178 | |
| 1179 | // |
| 1180 | |
| 1181 | extract <object> eef (mainNamespace["ef"]); |
| 1182 | assert (eef.check()); |
| 1183 | |
| 1184 | PyObject *efObj = eef().ptr(); |
| 1185 | assert (efObj != 0); |
| 1186 | |
| 1187 | extract <object> eed (mainNamespace["ed"]); |
| 1188 | assert (eed.check()); |
| 1189 | |
| 1190 | PyObject *edObj = eed().ptr(); |
| 1191 | assert (edObj != 0); |
| 1192 | |
| 1193 | extract <object> ei (mainNamespace["i"]); |
| 1194 | assert (ei.check()); |
| 1195 | |
| 1196 | PyObject *iObj = ei().ptr(); |
| 1197 | assert (iObj != 0); |
| 1198 | |
| 1199 | // |
| 1200 | |
| 1201 | std::cerr << "Testing Eulerf:\n"; |
| 1202 | |
| 1203 | IMATH_NAMESPACE::Eulerf efAsEf; |
| 1204 | assert (PyImath::Eulerf::convert (efObj, &efAsEf) == 1); |
| 1205 | IMATH_NAMESPACE::Eulerf eff (IMATH_NAMESPACE::V3f (1.1f, 2.2f, 3.3f), IMATH_NAMESPACE::Eulerf::XZY); |
| 1206 | assert (efAsEf.order() == eff.order()); |
| 1207 | assert (efAsEf.toMatrix44().equalWithAbsError (eff.toMatrix44(), 1e-7)); |
| 1208 |
nothing calls this directly
no test coverage detected