test-lastseen.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Not sure where to begin with gtest?
  2. //
  3. // What can I test with gtest?
  4. //
  5. // googletest/googletest/docs/primer.md
  6. #include "lastseen.h"
  7. #include "gtest/gtest.h"
  8. namespace {
  9. TEST(LastSeenTest, negative) {
  10. LastSeen zero(4);
  11. // buffer: -1, -1
  12. EXPECT_TRUE(zero.seen_before(-1));
  13. EXPECT_TRUE(zero.seen_before(-1));
  14. }
  15. TEST(LastSeenTest, basic) {
  16. LastSeen one(1);
  17. EXPECT_FALSE(one.seen_before(0));
  18. EXPECT_TRUE(one.seen_before(0));
  19. EXPECT_TRUE(one.seen_before(0));
  20. EXPECT_FALSE(one.seen_before(1));
  21. EXPECT_TRUE(one.seen_before(1));
  22. EXPECT_FALSE(one.seen_before(0));
  23. }
  24. TEST(LastSeenTest, Deep2) {
  25. LastSeen two(2);
  26. EXPECT_FALSE(two.seen_before(0));
  27. EXPECT_FALSE(two.seen_before(1));
  28. // buffer: 0, 1
  29. EXPECT_TRUE(two.seen_before(0));
  30. EXPECT_TRUE(two.seen_before(1));
  31. EXPECT_TRUE(two.seen_before(0));
  32. EXPECT_TRUE(two.seen_before(1));
  33. EXPECT_FALSE(two.seen_before(2));
  34. // buffer: 1, 2
  35. EXPECT_TRUE(two.seen_before(2));
  36. EXPECT_TRUE(two.seen_before(1));
  37. EXPECT_TRUE(two.seen_before(2));
  38. EXPECT_TRUE(two.seen_before(1));
  39. EXPECT_FALSE(two.seen_before(0));
  40. }
  41. TEST(LastSeenTest, More) {
  42. int x;
  43. LastSeen seven(7);
  44. for (x = 0; x < 7; x++) {
  45. EXPECT_FALSE(seven.seen_before(x));
  46. }
  47. // 0 - 6
  48. for (x = 0; x < 7; x++) {
  49. EXPECT_TRUE(seven.seen_before(x));
  50. }
  51. // 0 - 6
  52. EXPECT_FALSE(seven.seen_before(7));
  53. // 1 - 7
  54. for (x = 1; x < 8; x++) {
  55. EXPECT_TRUE(seven.seen_before(x));
  56. }
  57. EXPECT_FALSE(seven.seen_before(0));
  58. // 2 -6, 0
  59. for (x = 2; x < 7; x++) {
  60. EXPECT_TRUE(seven.seen_before(x));
  61. }
  62. EXPECT_TRUE(seven.seen_before(0));
  63. }
  64. } // namespace