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

Method test_subclassing

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

Source from the content-addressed store, hash-verified

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