test_builtin_converters.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright Daniel Wallin 2009. Use, modification and distribution is
  2. // subject to the Boost Software License, Version 1.0. (See accompanying
  3. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  4. #include "test.hpp"
  5. #include <luabind/luabind.hpp>
  6. #define LUABIND_TEST_BUILTIN(type, value) \
  7. default_converter<type>().to(L, value); \
  8. default_converter<type> BOOST_PP_CAT(cv, __LINE__); \
  9. TEST_CHECK(BOOST_PP_CAT(cv, __LINE__).compute_score(L, -1) >= 0); \
  10. TEST_CHECK(BOOST_PP_CAT(cv, __LINE__).from(L, -1) == value); \
  11. lua_pop(L, 1)
  12. void test_main(lua_State* L)
  13. {
  14. using namespace luabind;
  15. LUABIND_TEST_BUILTIN(int, 1);
  16. LUABIND_TEST_BUILTIN(int, -1);
  17. LUABIND_TEST_BUILTIN(unsigned int, 1);
  18. LUABIND_TEST_BUILTIN(unsigned int, 2);
  19. LUABIND_TEST_BUILTIN(short, 1);
  20. LUABIND_TEST_BUILTIN(short, -1);
  21. LUABIND_TEST_BUILTIN(unsigned short, 1);
  22. LUABIND_TEST_BUILTIN(unsigned short, 2);
  23. LUABIND_TEST_BUILTIN(long, 1);
  24. LUABIND_TEST_BUILTIN(long, -1);
  25. LUABIND_TEST_BUILTIN(unsigned long, 1);
  26. LUABIND_TEST_BUILTIN(unsigned long, 2);
  27. LUABIND_TEST_BUILTIN(char, 1);
  28. LUABIND_TEST_BUILTIN(char, 2);
  29. LUABIND_TEST_BUILTIN(unsigned char, 1);
  30. LUABIND_TEST_BUILTIN(unsigned char, 2);
  31. LUABIND_TEST_BUILTIN(signed char, -1);
  32. LUABIND_TEST_BUILTIN(signed char, 1);
  33. LUABIND_TEST_BUILTIN(float, 1.5);
  34. LUABIND_TEST_BUILTIN(float, -1.5);
  35. LUABIND_TEST_BUILTIN(double, 1.5);
  36. LUABIND_TEST_BUILTIN(double, -1.5);
  37. LUABIND_TEST_BUILTIN(bool, true);
  38. LUABIND_TEST_BUILTIN(bool, false);
  39. }