@@ -146,13 +146,10 @@ UTEST(TestManyToMany, BulkInsert)
146
146
m2m.insert (3 , " clementine" );
147
147
148
148
std::vector<ManyToMany<int , std::string>::Pair> vec;
149
- // Add to existing left value
150
149
vec.push_back (ManyToMany<int , std::string>::Pair (3 , " crabapple" ));
151
150
vec.push_back (ManyToMany<int , std::string>::Pair (3 , " cashew" ));
152
- // Completely new left right pairs
153
151
vec.push_back (ManyToMany<int , std::string>::Pair (10 , " date" ));
154
152
vec.push_back (ManyToMany<int , std::string>::Pair (10 , " dewberry" ));
155
- // Existing right values, steal them
156
153
vec.push_back (ManyToMany<int , std::string>::Pair (10 , " apricot" ));
157
154
vec.push_back (ManyToMany<int , std::string>::Pair (10 , " banana" ));
158
155
vec.push_back (ManyToMany<int , std::string>::Pair (20 , " avocado" ));
@@ -182,46 +179,46 @@ UTEST(TestManyToMany, BulkInsert)
182
179
ASSERT_TRUE (m2m.contains (20 , " apple" ));
183
180
}
184
181
185
- // UTEST(TestManyToMany, BulkErase)
186
- // {
187
- // ManyToMany<int, std::string> mtm;
188
- // mtm.insert(1, "apple");
189
- // mtm.insert(1, "apricot");
190
- // mtm.insert(1, "avocado");
191
- //
192
- // mtm.insert(2, "banana");
193
- // mtm.insert(2, "blueberry");
194
- // mtm.insert(2, "blackberry");
195
- //
196
- // mtm.insert(3, "cherry");
197
- // mtm.insert(3, "coconut");
198
- // mtm.insert(3, "clementine");
199
- //
200
- // std::vector<ManyToMany<int, std::string>::Pair> vec;
201
- // // Erase all of left=1
202
- // vec.push_back(ManyToMany<int, std::string>::Pair(1, "apple"));
203
- // vec.push_back(ManyToMany<int, std::string>::Pair(1, "apricot"));
204
- // vec.push_back(ManyToMany<int, std::string>::Pair(1, "avocado"));
205
- // // Erase some of left=2
206
- // vec.push_back(ManyToMany<int, std::string>::Pair(2, "banana"));
207
- // vec.push_back(ManyToMany<int, std::string>::Pair(2, "blueberry"));
208
- // // This pair is not in the set
209
- // vec.push_back(ManyToMany<int, std::string>::Pair(1000, "zucchini"));
210
- //
211
- // mtm.erase(vec);
212
- //
213
- // ASSERT_EQ(mtm.count(), 4);
214
- // //ASSERT_TRUE(isValid(mtm));
215
- //
216
- // ASSERT_FALSE(mtm.contains(1, "apple"));
217
- // ASSERT_FALSE(mtm.contains(1, "apricot"));
218
- // ASSERT_FALSE(mtm.contains(1, "avocado"));
219
- // ASSERT_FALSE(mtm.contains(2, "banana"));
220
- // ASSERT_FALSE(mtm.contains(2, "blueberry"));
221
- //
222
- // ASSERT_TRUE(mtm.contains(2, "blackberry"));
223
- // ASSERT_TRUE(mtm.contains(3, "cherry"));
224
- // ASSERT_TRUE(mtm.contains(3, "coconut"));
225
- // ASSERT_TRUE(mtm.contains(3, "clementine"));
226
- // }
182
+ UTEST (TestManyToMany, BulkErase)
183
+ {
184
+ ManyToMany<int , std::string> mtm;
185
+ mtm.insert (1 , " apple" );
186
+ mtm.insert (1 , " apricot" );
187
+ mtm.insert (1 , " avocado" );
188
+
189
+ mtm.insert (2 , " banana" );
190
+ mtm.insert (2 , " blueberry" );
191
+ mtm.insert (2 , " blackberry" );
192
+
193
+ mtm.insert (3 , " cherry" );
194
+ mtm.insert (3 , " coconut" );
195
+ mtm.insert (3 , " clementine" );
196
+
197
+ std::vector<ManyToMany<int , std::string>::Pair> vec;
198
+ // Erase all of left=1
199
+ vec.push_back (ManyToMany<int , std::string>::Pair (1 , " apple" ));
200
+ vec.push_back (ManyToMany<int , std::string>::Pair (1 , " apricot" ));
201
+ vec.push_back (ManyToMany<int , std::string>::Pair (1 , " avocado" ));
202
+ // Erase some of left=2
203
+ vec.push_back (ManyToMany<int , std::string>::Pair (2 , " banana" ));
204
+ vec.push_back (ManyToMany<int , std::string>::Pair (2 , " blueberry" ));
205
+ // This pair is not in the set
206
+ vec.push_back (ManyToMany<int , std::string>::Pair (1000 , " zucchini" ));
207
+
208
+ mtm.erase (vec);
209
+
210
+ ASSERT_EQ (mtm.count (), 4 );
211
+ // ASSERT_TRUE(isValid(mtm));
212
+
213
+ ASSERT_FALSE (mtm.contains (1 , " apple" ));
214
+ ASSERT_FALSE (mtm.contains (1 , " apricot" ));
215
+ ASSERT_FALSE (mtm.contains (1 , " avocado" ));
216
+ ASSERT_FALSE (mtm.contains (2 , " banana" ));
217
+ ASSERT_FALSE (mtm.contains (2 , " blueberry" ));
218
+
219
+ ASSERT_TRUE (mtm.contains (2 , " blackberry" ));
220
+ ASSERT_TRUE (mtm.contains (3 , " cherry" ));
221
+ ASSERT_TRUE (mtm.contains (3 , " coconut" ));
222
+ ASSERT_TRUE (mtm.contains (3 , " clementine" ));
223
+ }
227
224
0 commit comments