MCPcopy Index your code
hub / github.com/python/cpython / test_subclassing

Method test_subclassing

Lib/test/test_decimal.py:2255–2300  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2253 self.assertEqual(Decimal(p) / Decimal(q), d)
2254
2255 def test_subclassing(self):
2256 # Different behaviours when subclassing Decimal
2257 Decimal = self.decimal.Decimal
2258
2259 class MyDecimal(Decimal):
2260 y = None
2261
2262 d1 = MyDecimal(1)
2263 d2 = MyDecimal(2)
2264 d = d1 + d2
2265 self.assertIs(type(d), Decimal)
2266
2267 d = d1.max(d2)
2268 self.assertIs(type(d), Decimal)
2269
2270 d = copy.copy(d1)
2271 self.assertIs(type(d), MyDecimal)
2272 self.assertEqual(d, d1)
2273
2274 d = copy.deepcopy(d1)
2275 self.assertIs(type(d), MyDecimal)
2276 self.assertEqual(d, d1)
2277
2278 # Decimal(Decimal)
2279 d = Decimal('1.0')
2280 x = Decimal(d)
2281 self.assertIs(type(x), Decimal)
2282 self.assertEqual(x, d)
2283
2284 # MyDecimal(Decimal)
2285 m = MyDecimal(d)
2286 self.assertIs(type(m), MyDecimal)
2287 self.assertEqual(m, d)
2288 self.assertIs(m.y, None)
2289
2290 # Decimal(MyDecimal)
2291 x = Decimal(m)
2292 self.assertIs(type(x), Decimal)
2293 self.assertEqual(x, d)
2294
2295 # MyDecimal(MyDecimal)
2296 m.y = 9
2297 x = MyDecimal(m)
2298 self.assertIs(type(x), MyDecimal)
2299 self.assertEqual(x, d)
2300 self.assertIs(x.y, None)
2301
2302 def test_implicit_context(self):
2303 Decimal = self.decimal.Decimal

Callers

nothing calls this directly

Calls 6

DecimalClass · 0.85
MyDecimalClass · 0.70
assertIsMethod · 0.45
maxMethod · 0.45
copyMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected