MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_order_preservation

Method test_order_preservation

Lib/test/test_collections.py:2148–2203  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2146 self.assertEqual(c.total(), 15)
2147
2148 def test_order_preservation(self):
2149 # Input order dictates items() order
2150 self.assertEqual(list(Counter('abracadabra').items()),
2151 [('a', 5), ('b', 2), ('r', 2), ('c', 1), ('d', 1)])
2152 # letters with same count: ^----------^ ^---------^
2153
2154 # Verify retention of order even when all counts are equal
2155 self.assertEqual(list(Counter('xyzpdqqdpzyx').items()),
2156 [('x', 2), ('y', 2), ('z', 2), ('p', 2), ('d', 2), ('q', 2)])
2157
2158 # Input order dictates elements() order
2159 self.assertEqual(list(Counter('abracadabra simsalabim').elements()),
2160 ['a', 'a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b','r',
2161 'r', 'c', 'd', ' ', 's', 's', 'i', 'i', 'm', 'm', 'l'])
2162
2163 # Math operations order first by the order encountered in the left
2164 # operand and then by the order encountered in the right operand.
2165 ps = 'aaabbcdddeefggghhijjjkkl'
2166 qs = 'abbcccdeefffhkkllllmmnno'
2167 order = {letter: i for i, letter in enumerate(dict.fromkeys(ps + qs))}
2168 def correctly_ordered(seq):
2169 'Return true if the letters occur in the expected order'
2170 positions = [order[letter] for letter in seq]
2171 return positions == sorted(positions)
2172
2173 p, q = Counter(ps), Counter(qs)
2174 self.assertTrue(correctly_ordered(+p))
2175 self.assertTrue(correctly_ordered(-p))
2176 self.assertTrue(correctly_ordered(p + q))
2177 self.assertTrue(correctly_ordered(p - q))
2178 self.assertTrue(correctly_ordered(p | q))
2179 self.assertTrue(correctly_ordered(p & q))
2180
2181 p, q = Counter(ps), Counter(qs)
2182 p += q
2183 self.assertTrue(correctly_ordered(p))
2184
2185 p, q = Counter(ps), Counter(qs)
2186 p -= q
2187 self.assertTrue(correctly_ordered(p))
2188
2189 p, q = Counter(ps), Counter(qs)
2190 p |= q
2191 self.assertTrue(correctly_ordered(p))
2192
2193 p, q = Counter(ps), Counter(qs)
2194 p &= q
2195 self.assertTrue(correctly_ordered(p))
2196
2197 p, q = Counter(ps), Counter(qs)
2198 p.update(q)
2199 self.assertTrue(correctly_ordered(p))
2200
2201 p, q = Counter(ps), Counter(qs)
2202 p.subtract(q)
2203 self.assertTrue(correctly_ordered(p))
2204
2205 def test_update(self):

Callers

nothing calls this directly

Calls 10

CounterClass · 0.90
listClass · 0.85
enumerateFunction · 0.85
assertTrueMethod · 0.80
assertEqualMethod · 0.45
itemsMethod · 0.45
elementsMethod · 0.45
fromkeysMethod · 0.45
updateMethod · 0.45
subtractMethod · 0.45

Tested by

no test coverage detected