@@ -40,6 +40,10 @@ def test_common(self):
4040 assert bag ['a' ] == 5
4141 assert bag ['missing value' ] == 0
4242 assert len (bag ) == 5
43+ assert 'a' in bag
44+ assert 'r' in bag
45+ assert 'R' not in bag
46+ assert 'x' not in self .bag_type ({'x' : 0 ,})
4347
4448 assert set (bag .most_common ()) == \
4549 set (collections .Counter (bag ).most_common ()) == \
@@ -213,10 +217,22 @@ def test_mutating(self):
213217 bag ['a' ] -= 1
214218 assert bag == self .bag_type ('abracadabr' )
215219
220+ bag = self .bag_type ('abracadabra' )
221+ bag ['a' ] *= 2
222+ assert bag == self .bag_type ('abracadabra' + 'a' * 5 )
223+
224+ bag = self .bag_type ('abracadabra' )
225+ bag ['a' ] //= 2
226+ assert bag == self .bag_type ('abracdbr' )
227+
216228 bag = self .bag_type ('abracadabra' )
217229 bag ['a' ] %= 2
218230 assert bag == self .bag_type ('abrcdbr' )
219231
232+ bag = self .bag_type ('abracadabra' )
233+ bag ['a' ] **= 2
234+ assert bag == self .bag_type ('abracadabra' + 'a' * 20 )
235+
220236 bag = self .bag_type ('abracadabra' )
221237 bag += bag
222238 assert bag == self .bag_type ('abracadabra' * 2 )
@@ -225,10 +241,31 @@ def test_mutating(self):
225241 bag -= bag
226242 assert bag == self .bag_type ()
227243
244+ bag = self .bag_type ('abracadabra' )
245+ bag *= 2
246+ assert bag == self .bag_type ('abracadabra' * 2 )
247+
248+ bag = self .bag_type ('abracadabra' )
249+ bag //= 2
250+ assert bag == self .bag_type ('aabr' )
251+
252+ bag = self .bag_type ('abracadabra' )
253+ bag //= self .bag_type ('aabr' )
254+ assert bag == 2
255+
228256 bag = self .bag_type ('abracadabra' )
229257 bag %= 2
230258 assert bag == self .bag_type ('acd' )
231259
260+ bag = self .bag_type ('abracadabra' )
261+ bag %= self .bag_type ('aabr' )
262+ assert bag == self .bag_type ('acd' )
263+
264+ bag = self .bag_type ('abracadabra' )
265+ bag **= 2
266+ assert bag == self .bag_type ('abracadabra' + 'a' * 20 + 'b' * 2 +
267+ 'r' * 2 )
268+
232269 bag = self .bag_type ('abracadabra' )
233270 bag ['a' ] = 7
234271 assert bag == self .bag_type ('abracadabra' + 'aa' )
@@ -290,33 +327,51 @@ def test_mutating(self):
290327 bag ['a' ] += 1
291328 with cute_testing .RaiseAssertor (TypeError ):
292329 bag ['a' ] -= 1
330+ with cute_testing .RaiseAssertor (TypeError ):
331+ bag ['a' ] *= 2
332+ with cute_testing .RaiseAssertor (TypeError ):
333+ bag ['a' ] //= 2
293334 with cute_testing .RaiseAssertor (TypeError ):
294335 bag ['a' ] %= 2
336+ with cute_testing .RaiseAssertor (TypeError ):
337+ bag ['a' ] **= 2
295338
296339 bag += bag
297340 assert bag == bag_reference * 2
298341 assert bag is not bag_reference
299342 bag = bag_reference
300343
301- bag -= bag
302- assert bag == bag_reference * 2
344+ bag -= self .bag_type ('ab' )
345+ assert bag == bag_reference - self .bag_type ('ab' ) == \
346+ self .bag_type ('abracadar' )
303347 assert bag is not bag_reference
304348 bag = bag_reference
305349
306- bag %= bag
307- assert bag == bag_reference * 2
350+ bag *= 3
351+ assert bag == bag_reference + bag_reference + bag_reference
308352 assert bag is not bag_reference
309353 bag = bag_reference
310354
311- bag *= 3
355+ bag //= 2
356+ assert bag == bag_reference + bag_reference + bag_reference
357+ assert bag is not bag_reference
358+ bag = bag_reference
359+
360+ bag //=
312361 assert bag == bag_reference + bag_reference + bag_reference
313362 assert bag is not bag_reference
314363 bag = bag_reference
364+
365+ bag %= 2
366+ assert bag == bag_reference % 2 == self .bag_type ('acd' )
367+ assert bag is not bag_reference
368+ bag = bag_reference
369+
370+ bag %= self .bag_type ('aabr' )
371+ assert bag == 2
372+ assert bag is not bag_reference
373+ bag = bag_reference
315374
316- with cute_testing .RaiseAssertor (TypeError ):
317- bag -= bag
318- with cute_testing .RaiseAssertor (TypeError ):
319- bag %= bag
320375 with cute_testing .RaiseAssertor (TypeError ):
321376 bag ['a' ] = 7
322377 with cute_testing .RaiseAssertor (TypeError ):
@@ -345,7 +400,11 @@ def test_ordering(self):
345400 assert ordered_bag_0 <= ordered_bag_1
346401 assert ordered_bag_0 >= ordered_bag_1
347402
348-
403+ def test_reversed (self ):
404+ bag = self .bag_type ('abracadabra' )
405+ assert tuple (reversed (self .bag )) == tuple (reversed (tuple (self .bag )))
406+
407+
349408class BaseUnorderedBagTestCase (BaseBagTestCase ):
350409
351410 def test_ordering (self ):
@@ -354,6 +413,12 @@ def test_ordering(self):
354413 assert bag_0 == bag_1
355414 if issubclass (self .bag_type , collections .Hashable ):
356415 assert hash (bag_0 ) == hash (bag_1 )
416+
417+
418+ def test_reversed (self ):
419+ bag = self .bag_type ('abracadabra' )
420+ assert set (reversed (self .bag )) == set (self .bag )
421+
357422
358423###############################################################################
359424
0 commit comments