diff options
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc')
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc | 83 |
1 files changed, 33 insertions, 50 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc index 721edefe37b..4cb248bd40e 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc @@ -20,7 +20,6 @@ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * */ #include "hb.hh" @@ -28,11 +27,6 @@ #include "hb-set.hh" #include <string> -static const std::string invalid{"invalid"}; -static const hb_map_t invalid_map{}; -static const hb_set_t invalid_set{}; -static const hb_vector_t<unsigned> invalid_vector{}; - int main (int argc, char **argv) { @@ -128,19 +122,19 @@ main (int argc, char **argv) /* Test class key / value types. */ { - hb_hashmap_t<hb_bytes_t, int, std::nullptr_t, int, nullptr, 0> m1; - hb_hashmap_t<int, hb_bytes_t, int, std::nullptr_t, 0, nullptr> m2; - hb_hashmap_t<hb_bytes_t, hb_bytes_t, std::nullptr_t, std::nullptr_t, nullptr, nullptr> m3; + hb_hashmap_t<hb_bytes_t, int> m1; + hb_hashmap_t<int, hb_bytes_t> m2; + hb_hashmap_t<hb_bytes_t, hb_bytes_t> m3; assert (m1.get_population () == 0); assert (m2.get_population () == 0); assert (m3.get_population () == 0); } { - hb_hashmap_t<int, int, int, int, 0, 0> m0; - hb_hashmap_t<std::string, int, const std::string*, int, &invalid, 0> m1; - hb_hashmap_t<int, std::string, int, const std::string*, 0, &invalid> m2; - hb_hashmap_t<std::string, std::string, const std::string*, const std::string*, &invalid, &invalid> m3; + hb_hashmap_t<int, int> m0; + hb_hashmap_t<std::string, int> m1; + hb_hashmap_t<int, std::string> m2; + hb_hashmap_t<std::string, std::string> m3; std::string s; for (unsigned i = 1; i < 1000; i++) @@ -157,70 +151,59 @@ main (int argc, char **argv) { using pair = hb_pair_t<hb_codepoint_t, hb_codepoint_t>; - hb_hashmap_t<hb_map_t, hb_map_t, const hb_map_t *, const hb_map_t *, &invalid_map, &invalid_map> m1; - hb_hashmap_t<hb_map_t, hb_map_t, std::nullptr_t, std::nullptr_t, nullptr, nullptr> m2; + hb_hashmap_t<hb_map_t, hb_map_t> m1; m1.set (hb_map_t (), hb_map_t {}); - m2.set (hb_map_t (), hb_map_t {}); - m1.set (hb_map_t (), hb_map_t {pair (1u, 2u)}); - m2.set (hb_map_t (), hb_map_t {pair (1u, 2u)}); - m1.set (hb_map_t {pair (1u, 2u)}, hb_map_t {pair (2u, 3u)}); - m2.set (hb_map_t {pair (1u, 2u)}, hb_map_t {pair (2u, 3u)}); - - /* Cannot override empty map. */ - assert (m1.get (hb_map_t ()) == hb_map_t ()); - assert (m2.get (hb_map_t ()) == hb_map_t ()); - assert (m1.get (hb_map_t {pair (1u, 2u)}) == hb_map_t {pair (2u, 3u)}); - assert (m2.get (hb_map_t {pair (1u, 2u)}) == hb_map_t {pair (2u, 3u)}); + assert (m1.get (hb_map_t ()) == hb_map_t {pair (1u, 2u)}); + assert (m1.get (hb_map_t {pair (1u, 2u)}) == hb_map_t {pair (2u, 3u)}); } /* Test hashing sets. */ { - hb_hashmap_t<hb_set_t, hb_set_t, const hb_set_t *, const hb_set_t *, &invalid_set, &invalid_set> m1; - hb_hashmap_t<hb_set_t, hb_set_t, std::nullptr_t, std::nullptr_t, nullptr, nullptr> m2; + hb_hashmap_t<hb_set_t, hb_set_t> m1; m1.set (hb_set_t (), hb_set_t ()); - m2.set (hb_set_t (), hb_set_t ()); - m1.set (hb_set_t (), hb_set_t {1}); - m2.set (hb_set_t (), hb_set_t {1}); - m1.set (hb_set_t {1, 1000}, hb_set_t {2}); - m2.set (hb_set_t {1, 1000}, hb_set_t {2}); - - /* Cannot override empty set. */ - assert (m1.get (hb_set_t ()) == hb_set_t ()); - assert (m2.get (hb_set_t ()) == hb_set_t ()); + assert (m1.get (hb_set_t ()) == hb_set_t {1}); assert (m1.get (hb_set_t {1000, 1}) == hb_set_t {2}); - assert (m2.get (hb_set_t {1000, 1}) == hb_set_t {2}); } /* Test hashing vectors. */ { using vector_t = hb_vector_t<unsigned>; - hb_hashmap_t<vector_t, vector_t, const vector_t *, const vector_t *, &invalid_vector, &invalid_vector> m1; - hb_hashmap_t<vector_t, vector_t, std::nullptr_t, std::nullptr_t, nullptr, nullptr> m2; + hb_hashmap_t<vector_t, vector_t> m1; m1.set (vector_t (), vector_t ()); - m2.set (vector_t (), vector_t ()); - m1.set (vector_t (), vector_t {1}); - m2.set (vector_t (), vector_t {1}); - m1.set (vector_t {1}, vector_t {2}); - m2.set (vector_t {1}, vector_t {2}); - - /* Cannot override empty vector. */ - assert (m1.get (vector_t ()) == vector_t ()); - assert (m2.get (vector_t ()) == vector_t ()); + assert (m1.get (vector_t ()) == vector_t {1}); assert (m1.get (vector_t {1}) == vector_t {2}); - assert (m2.get (vector_t {1}) == vector_t {2}); + } + + /* Test hb::shared_ptr. */ + hb_hash (hb::shared_ptr<hb_set_t> ()); + { + hb_hashmap_t<hb::shared_ptr<hb_set_t>, hb::shared_ptr<hb_set_t>> m; + + m.get (hb::shared_ptr<hb_set_t> ()); + m.get (hb::shared_ptr<hb_set_t> (hb_set_get_empty ())); + m.iter (); + } + /* Test hb::unique_ptr. */ + hb_hash (hb::unique_ptr<hb_set_t> ()); + { + hb_hashmap_t<hb::unique_ptr<hb_set_t>, hb::unique_ptr<hb_set_t>> m; + + m.get (hb::unique_ptr<hb_set_t> ()); + m.get (hb::unique_ptr<hb_set_t> (hb_set_get_empty ())); + m.iter_ref (); } return 0; |