dyn_limit_test.cxx 747 B

123456789101112131415161718192021222324252627282930313233343536
  1. //
  2. // dyn_limit_test.cxx
  3. // limit-test
  4. //
  5. // Created by Sam Jaffe on 12/9/23.
  6. //
  7. #include "math/dyn_limit.h"
  8. #include "xcode_gtest_helper.h"
  9. TEST(DynBoundNumber, ConstructsInbounds) {
  10. EXPECT_EQ(math::DynBound<int>(0, -5, +7), 0);
  11. }
  12. TEST(DynBoundNumber, ClampsOOBLow) {
  13. EXPECT_EQ(math::DynBound<int>(-6, -5, +7), -5);
  14. }
  15. TEST(DynBoundNumber, ClampsOOBHigh) {
  16. EXPECT_EQ(math::DynBound<int>(+8, -5, +7), +7);
  17. }
  18. TEST(DynBoundNumber, IncrementIsLimitSafe) {
  19. math::DynBound<int> value(+7, -5, +7);
  20. EXPECT_EQ(value, +7);
  21. EXPECT_EQ(value++, +7);
  22. EXPECT_EQ(value, +7);
  23. }
  24. TEST(DynBoundNumber, DecrementIsLimitSafe) {
  25. math::DynBound<int> value(-5, -5, +7);
  26. EXPECT_EQ(value, -5);
  27. EXPECT_EQ(value--, -5);
  28. EXPECT_EQ(value, -5);
  29. }