Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

73 строки
1.1 KiB

  1. #include <gtest/gtest.h>
  2. #include <cppmp.h>
  3. using namespace ::testing;
  4. using namespace ::cppmp;
  5. struct test_obj
  6. {
  7. mutable int value;
  8. int get()
  9. { return value; }
  10. int cget() const
  11. { return value; }
  12. static int sget(test_obj& o)
  13. { return o.value; }
  14. };
  15. TEST(cppmp_getter_tests, member_var)
  16. {
  17. test_obj o { 1 };
  18. auto g = make_getter(&test_obj::value);
  19. auto i = g(o);
  20. EXPECT_EQ(1, i);
  21. }
  22. TEST(cppmp_getter_tests, member_func)
  23. {
  24. test_obj o { 1 };
  25. auto g = make_getter(&test_obj::get);
  26. auto i = g(o);
  27. EXPECT_EQ(1, i);
  28. }
  29. TEST(cppmp_getter_tests, const_member_func)
  30. {
  31. test_obj o { 1 };
  32. auto g = make_getter(&test_obj::cget);
  33. auto i = g(o);
  34. EXPECT_EQ(1, i);
  35. }
  36. TEST(cppmp_getter_tests, static_func)
  37. {
  38. test_obj o { 1 };
  39. auto g = make_getter(&test_obj::sget);
  40. auto i = g(o);
  41. EXPECT_EQ(1, i);
  42. }
  43. TEST(cppmp_getter_tests, lambda)
  44. {
  45. test_obj obj { 1 };
  46. auto g = make_getter([](test_obj& o){
  47. return o.value;
  48. });
  49. auto i = g(obj);
  50. EXPECT_EQ(1, i);
  51. }