Skip to content

Commit 8a002e6

Browse files
committed
string transparent test
1 parent 6f7268e commit 8a002e6

File tree

11 files changed

+91
-0
lines changed

11 files changed

+91
-0
lines changed

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.access/at_transparent.pass.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,13 @@ int main(int, char**) {
106106
TEST_IGNORE_NODISCARD m.at(Transparent<int>{3});
107107
assert(transparent_used);
108108
}
109+
{
110+
// std::string and C string literal
111+
using M = std::flat_map<std::string, int, std::less<>>;
112+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
113+
int& x = m.at("alpha");
114+
assert(x == 1);
115+
}
109116

110117
return 0;
111118
}

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.access/index_transparent.pass.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,13 @@ int main(int, char**) {
9494
m[ConvertibleTransparent<int>{3}];
9595
assert(transparent_used);
9696
}
97+
{
98+
// std::string and C string literal
99+
using M = std::flat_map<std::string, int, std::less<>>;
100+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
101+
int& x = m["alpha"];
102+
assert(x == 1);
103+
}
97104
{
98105
auto index_func = [](auto& m, auto key_arg, auto value_arg) {
99106
using FlatMap = std::decay_t<decltype(m)>;

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_key_transparent.pass.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,13 @@ int main(int, char**) {
139139
};
140140
test_erase_exception_guarantee(erase_transparent);
141141
}
142+
{
143+
// std::string and C string literal
144+
using M = std::flat_map<std::string, int, std::less<>>;
145+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
146+
auto n = m.erase("beta");
147+
assert(n == 1);
148+
}
142149

143150
return 0;
144151
}

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_transparent.pass.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,5 +163,15 @@ int main(int, char**) {
163163
};
164164
test_emplace_exception_guarantee(insert_func_iter);
165165
}
166+
{
167+
// std::string and C string literal
168+
using M = std::flat_map<std::string, int, std::less<>>;
169+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
170+
auto [it, inserted] = m.insert({"alpha", 1});
171+
assert(!inserted);
172+
assert(it == m.begin());
173+
auto it2 = m.insert(m.begin(), {"beta2", 2});
174+
assert(it2 == m.begin() + 2);
175+
}
166176
return 0;
167177
}

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace_transparent.pass.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,17 @@ int main(int, char**) {
160160
assert(p->second == 3);
161161
assert(transparent_used);
162162
}
163+
{
164+
// std::string and C string literal
165+
using M = std::flat_map<std::string, int, std::less<>>;
166+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
167+
auto [it1, inserted] = m.try_emplace("charlie", 4);
168+
assert(it1 == m.begin() + 2);
169+
assert(inserted);
170+
171+
auto it2 = m.try_emplace(m.begin(), "beta2", 2);
172+
assert(it2 == m.begin() + 2);
173+
}
163174
{
164175
auto try_emplace = [](auto& m, auto key_arg, auto value_arg) {
165176
using M = std::decay_t<decltype(m)>;

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/contains_transparent.pass.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
#include <cassert>
1616
#include <flat_map>
17+
#include <functional>
1718
#include <string>
1819
#include <utility>
1920
#include <deque>
@@ -67,5 +68,12 @@ int main(int, char**) {
6768
assert(b);
6869
assert(transparent_used);
6970
}
71+
{
72+
// std::string and C string literal
73+
using M = std::flat_map<std::string, int, std::less<>>;
74+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
75+
assert(m.contains("beta") == true);
76+
assert(m.contains("charlie") == false);
77+
}
7078
return 0;
7179
}

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/count_transparent.pass.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <cassert>
1616
#include <deque>
1717
#include <flat_map>
18+
#include <functional>
1819
#include <string>
1920
#include <utility>
2021

@@ -67,6 +68,13 @@ int main(int, char**) {
6768
assert(n == 1);
6869
assert(transparent_used);
6970
}
71+
{
72+
// std::string and C string literal
73+
using M = std::flat_map<std::string, int, std::less<>>;
74+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
75+
assert(m.count("alpha") == 1);
76+
assert(m.count("charlie") == 0);
77+
}
7078

7179
return 0;
7280
}

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/equal_range_transparent.pass.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <cassert>
1717
#include <deque>
1818
#include <flat_map>
19+
#include <functional>
1920
#include <string>
2021
#include <utility>
2122

@@ -95,6 +96,14 @@ int main(int, char**) {
9596
assert(p.first != p.second);
9697
assert(transparent_used);
9798
}
99+
{
100+
// std::string and C string literal
101+
using M = std::flat_map<std::string, int, std::less<>>;
102+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
103+
auto [first, last] = m.equal_range("beta");
104+
assert(first == m.begin() + 1);
105+
assert(last == m.begin() + 2);
106+
}
98107

99108
return 0;
100109
}

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/find_transparent.pass.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <cassert>
1717
#include <deque>
1818
#include <flat_map>
19+
#include <functional>
1920
#include <string>
2021
#include <utility>
2122

@@ -83,6 +84,13 @@ int main(int, char**) {
8384
assert(it != m.end());
8485
assert(transparent_used);
8586
}
87+
{
88+
// std::string and C string literal
89+
using M = std::flat_map<std::string, int, std::less<>>;
90+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
91+
auto it = m.find("beta");
92+
assert(it == m.begin() + 1);
93+
}
8694

8795
return 0;
8896
}

libcxx/test/std/containers/container.adaptors/flat.map/flat.map.operations/lower_bound_transparent.pass.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <cassert>
1717
#include <deque>
1818
#include <flat_map>
19+
#include <functional>
1920
#include <string>
2021
#include <utility>
2122

@@ -90,6 +91,13 @@ int main(int, char**) {
9091
assert(it != m.end());
9192
assert(transparent_used);
9293
}
94+
{
95+
// std::string and C string literal
96+
using M = std::flat_map<std::string, int, std::less<>>;
97+
M m{{"alpha", 1}, {"beta", 2}, {"epsilon", 1}, {"eta", 3}, {"gamma", 3}};
98+
auto it = m.lower_bound("charlie");
99+
assert(it == m.begin() + 2);
100+
}
93101

94102
return 0;
95103
}

0 commit comments

Comments
 (0)