self.assertEqual(list(reversed(A(1, 0).__dict__)), ['x'])
self.assertEqual(list(reversed(A(0, 1).__dict__)), ['y'])
+ def test_reversed_dict_after_clear_and_restore(self):
+ d = {}
+ for i in range(1000):
+ d[f"k{i}"] = i
+
+ for i in range(1, 1000):
+ del d[f"k{i}"]
+
+ iterators = (
+ reversed(d),
+ reversed(d.keys()),
+ reversed(d.values()),
+ reversed(d.items()),
+ )
+
+ d.clear()
+ d["k0"] = 0
+
+ for it in iterators:
+ self.assertEqual(list(it), [])
+
def test_dict_copy_order(self):
# bpo-34320
od = collections.OrderedDict([('a', 1), ('b', 2)])
int index = get_index_from_order(d, i);
key = LOAD_SHARED_KEY(DK_UNICODE_ENTRIES(k)[index].me_key);
value = d->ma_values->values[index];
- assert (value != NULL);
+ assert(value != NULL);
}
else {
+ if (i >= k->dk_nentries) {
+ goto fail;
+ }
if (DK_IS_UNICODE(k)) {
PyDictUnicodeEntry *entry_ptr = &DK_UNICODE_ENTRIES(k)[i];
while (entry_ptr->me_value == NULL) {