Test put and get of zigzag integers and longs.
| 76 | |
| 77 | // Test put and get of zigzag integers and longs. |
| 78 | TEST(ZigzagTest, Basic) { |
| 79 | // Test min/max of all sizes. |
| 80 | TestZInt(0); |
| 81 | TestZInt(INT_MAX); |
| 82 | TestZInt(INT_MIN); |
| 83 | TestZInt(SHRT_MIN); |
| 84 | TestZInt(SHRT_MAX); |
| 85 | TestZLong(0); |
| 86 | TestZLong(LONG_MAX); |
| 87 | TestZLong(LONG_MIN); |
| 88 | TestZLong(INT_MAX); |
| 89 | TestZLong(INT_MIN); |
| 90 | TestZLong(SHRT_MIN); |
| 91 | TestZLong(SHRT_MAX); |
| 92 | TestZLong(SCHAR_MIN); |
| 93 | TestZLong(SCHAR_MAX); |
| 94 | // Test somewhat random bit patterns. |
| 95 | int32_t value = 0xa2a2a2a2; |
| 96 | for (int i = 0; i < 1000; ++i) { |
| 97 | value = HashUtil::Hash(&value, sizeof (value), i); |
| 98 | TestZInt(value); |
| 99 | TestZLong(value); |
| 100 | TestZLong((static_cast<uint64_t>(value) << 32) | value); |
| 101 | } |
| 102 | } |
| 103 | |
| 104 | TEST(ZigzagTest, Errors) { |
| 105 | uint8_t buf[100]; |