1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cc/base/hash_pair.h"
7 #include "base/basictypes.h"
8 #include "testing/gtest/include/gtest/gtest.h"
12 class HashPairTest
: public testing::Test
{
15 #define INSERT_PAIR_TEST(Type, value1, value2) \
17 Type pair(value1, value2); \
18 base::hash_map<Type, int> map; \
22 // Verify that a hash_map can be constructed for pairs of integers of various
24 TEST_F(HashPairTest
, IntegerPairs
) {
25 typedef std::pair
<int16
, int16
> Int16Int16Pair
;
26 typedef std::pair
<int16
, int32
> Int16Int32Pair
;
27 typedef std::pair
<int16
, int64
> Int16Int64Pair
;
29 INSERT_PAIR_TEST(Int16Int16Pair
, 4, 6);
30 INSERT_PAIR_TEST(Int16Int32Pair
, 9, (1 << 29) + 378128932);
31 INSERT_PAIR_TEST(Int16Int64Pair
, 10,
32 (GG_INT64_C(1) << 60) + GG_INT64_C(78931732321));
34 typedef std::pair
<int32
, int16
> Int32Int16Pair
;
35 typedef std::pair
<int32
, int32
> Int32Int32Pair
;
36 typedef std::pair
<int32
, int64
> Int32Int64Pair
;
38 INSERT_PAIR_TEST(Int32Int16Pair
, 4, 6);
39 INSERT_PAIR_TEST(Int32Int32Pair
, 9, (1 << 29) + 378128932);
40 INSERT_PAIR_TEST(Int32Int64Pair
, 10,
41 (GG_INT64_C(1) << 60) + GG_INT64_C(78931732321));
43 typedef std::pair
<int64
, int16
> Int64Int16Pair
;
44 typedef std::pair
<int64
, int32
> Int64Int32Pair
;
45 typedef std::pair
<int64
, int64
> Int64Int64Pair
;
47 INSERT_PAIR_TEST(Int64Int16Pair
, 4, 6);
48 INSERT_PAIR_TEST(Int64Int32Pair
, 9, (1 << 29) + 378128932);
49 INSERT_PAIR_TEST(Int64Int64Pair
, 10,
50 (GG_INT64_C(1) << 60) + GG_INT64_C(78931732321));