diff --git a/test/unordered/transparent_tests.cpp b/test/unordered/transparent_tests.cpp index 9de531ae..03c8d2f8 100644 --- a/test/unordered/transparent_tests.cpp +++ b/test/unordered/transparent_tests.cpp @@ -1636,6 +1636,51 @@ template void test_map_non_transparent_insert_or_assign() BOOST_TEST(p == map.find(5)); } +template void test_map_transparent_subscript() +{ + count_reset(); + + UnorderedMap map; + + map[0] = 1337; + map[1] = 1338; + map[2] = 1339; + map[0] = 1340; + map[0] = 1341; + map[0] = 1342; + + int key_count = key::count_; + + map[0] = 7331; + BOOST_ASSERT(BOOST_TEST_EQ(key::count_, key_count)); + + map[4] = 7331; + BOOST_TEST_EQ(key::count_, key_count + 1); +} + +template void test_map_non_transparent_subscript() +{ + count_reset(); + + UnorderedMap map; + + map[0] = 1337; + map[1] = 1338; + map[2] = 1339; + map[0] = 1340; + map[0] = 1341; + map[0] = 1342; + + int key_count = key::count_; + + map[0] = 7331; + BOOST_ASSERT(BOOST_TEST_EQ(key::count_, key_count + 1)); + + key_count = key::count_; + map[4] = 7331; + BOOST_TEST_EQ(key::count_, key_count + 2); +} + #ifndef BOOST_UNORDERED_FOA_TESTS transparent_unordered_set::node_type set_extract_overload_compile_test() { @@ -1806,6 +1851,7 @@ void test_unordered_map() test_map_transparent_extract(); test_map_transparent_try_emplace(); test_map_transparent_insert_or_assign(); + test_map_transparent_subscript(); } { @@ -1820,6 +1866,7 @@ void test_unordered_map() test_map_non_transparent_extract(); test_map_non_transparent_try_emplace(); test_map_non_transparent_insert_or_assign(); + test_map_non_transparent_subscript(); } { @@ -1835,6 +1882,7 @@ void test_unordered_map() test_map_non_transparent_extract(); test_map_non_transparent_try_emplace(); test_map_non_transparent_insert_or_assign(); + test_map_non_transparent_subscript(); } { @@ -1850,6 +1898,7 @@ void test_unordered_map() test_map_non_transparent_extract(); test_map_non_transparent_try_emplace(); test_map_non_transparent_insert_or_assign(); + test_map_non_transparent_subscript(); } }