Advertisement
Art_Uspen

тесты

Dec 18th, 2021
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. #include "simple_defer.h"
  2.  
  3. #include <catch.hpp>
  4.  
  5. TEST_CASE("Basic") {
  6. int set_value1 = 12;
  7. int checker_num1 = 0;
  8.  
  9. {
  10. defer {
  11. checker_num1 = set_value1;
  12. };
  13. ++set_value1;
  14. REQUIRE(checker_num1 == 0);
  15. }
  16.  
  17. REQUIRE(checker_num1 == 13);
  18.  
  19. int set_value2 = 12;
  20. int checker_num2 = 0;
  21. {
  22. defer {
  23. checker_num2 = set_value2;
  24. };
  25. defer {
  26. checker_num2 *= 2;
  27. };
  28. REQUIRE(checker_num2 == 0);
  29. }
  30. REQUIRE(checker_num2 == 12);
  31.  
  32. int set_value3 = 12;
  33. int checker_num3 = 0;
  34. {
  35. defer {
  36. checker_num3 *= 2;
  37. };
  38. defer {
  39. checker_num3 = set_value3;
  40. };
  41. REQUIRE(checker_num3 == 0);
  42. }
  43. REQUIRE(checker_num3 == 24);
  44. }
  45.  
  46. TEST_CASE("Nested") {
  47. int x = 0;
  48.  
  49. {
  50. defer {
  51. defer {
  52. x += 10;
  53. };
  54. defer {
  55. x *= 2;
  56. };
  57. };
  58.  
  59. ++x;
  60. REQUIRE(x == 1);
  61. }
  62.  
  63. REQUIRE(x == 12);
  64. }
  65.  
  66. constexpr int Foo(int x) {
  67. defer {
  68. x *= 2;
  69. };
  70. return x;
  71. }
  72.  
  73. TEST_CASE("Constexpr") {
  74. constexpr int kX = 1;
  75. constexpr int kRes = Foo(kX); // NOLINT
  76. REQUIRE(kRes == 1);
  77. }
  78.  
  79. TEST_CASE("Multiline nested") {
  80. int x = 0;
  81.  
  82. {
  83. // clang-format off
  84. defer { defer { x += 10; }; };
  85. // clang-format on
  86.  
  87. ++x;
  88. REQUIRE(x == 1);
  89. }
  90.  
  91. REQUIRE(x == 11);
  92. }
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement