From f3a8b7f36b29fa7a7c7946023cbdcb915e1d6cbf Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 3 Jun 2022 02:21:46 -0600 Subject: [PATCH] [algs] Test hb_hash() --- src/test-algs.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/test-algs.cc b/src/test-algs.cc index f8b8ff666..450a7c439 100644 --- a/src/test-algs.cc +++ b/src/test-algs.cc @@ -26,6 +26,7 @@ #include "hb.hh" #include "hb-algs.hh" +#include "hb-set.hh" static char * @@ -91,5 +92,19 @@ main (int argc, char **argv) assert (++hb_inc (x) == 3); assert (x == 3); + hb_set_t set1 {1}; + hb_set_t set2 {2}; + + assert (hb_hash (set1) != hb_hash (set2)); + assert (hb_hash (set1) == hb_hash (hb_set_t {1})); + assert (hb_hash (set1) != hb_hash (hb_set_t {})); + assert (hb_hash (set1) != hb_hash (hb_set_t {2})); + assert (hb_hash (set2) == hb_hash (hb_set_t {2})); + + /* hb_hash, unlike std::hash, dereferences pointers. */ + assert (hb_hash (set1) == hb_hash (&set1)); + assert (hb_hash (set1) == hb_hash (hb::shared_ptr {hb_set_reference (&set1)})); + assert (hb_hash (set1) == hb_hash (hb::unique_ptr {hb_set_reference (&set1)})); + return 0; }