#include "llvm/ADT/Hashing.h"
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/HashBuilder.h"
#include "gtest/gtest.h"
#include <deque>
#include <list>
#include <map>
#include <optional>
#include <vector>
namespace llvm {
void PrintTo(const hash_code &code, std::ostream *os) { … }
struct LargeTestInteger { … };
struct NonPOD { … };
namespace hashing {
namespace detail {
template <> struct is_hashable_data<LargeTestInteger> : std::true_type { … };
}
}
}
usingnamespacellvm;
namespace {
enum TestEnumeration { … };
TEST(HashingTest, HashValueBasicTest) { … }
TEST(HashingTest, HashValueStdPair) { … }
TEST(HashingTest, HashValueStdTuple) { … }
TEST(HashingTest, HashValueStdString) { … }
TEST(HashingTest, HashValueStdOptional) { … }
template <typename T, size_t N> T *begin(T (&arr)[N]) { … }
template <typename T, size_t N> T *end(T (&arr)[N]) { … }
struct HashableDummy { … };
hash_code hash_value(HashableDummy dummy) { … }
TEST(HashingTest, HashCombineRangeBasicTest) { … }
TEST(HashingTest, HashCombineRangeLengthDiff) { … }
TEST(HashingTest, HashCombineBasicTest) { … }
TEST(HashingTest, HashCombineArgs18) { … }
struct StructWithHashBuilderSupport { … };
TEST(HashingTest, HashWithHashBuilder) { … }
struct StructWithHashBuilderAndHashValueSupport { … };
TEST(HashingTest, HashBuilderAndHashValue) { … }
}