ยปCore Development>Code coverage>Lib/collections/__main__.py

Python code coverage for Lib/collections/__main__.py

#countcontent
1n/a################################################################################
2n/a### Simple tests
3n/a################################################################################
4n/a
5n/a# verify that instances can be pickled
6n/afrom collections import namedtuple
7n/afrom pickle import loads, dumps
8n/aPoint = namedtuple('Point', 'x, y', True)
9n/ap = Point(x=10, y=20)
10n/aassert p == loads(dumps(p))
11n/a
12n/a# test and demonstrate ability to override methods
13n/aclass Point(namedtuple('Point', 'x y')):
14n/a __slots__ = ()
15n/a @property
16n/a def hypot(self):
17n/a return (self.x ** 2 + self.y ** 2) ** 0.5
18n/a def __str__(self):
19n/a return 'Point: x=%6.3f y=%6.3f hypot=%6.3f' % (self.x, self.y, self.hypot)
20n/a
21n/afor p in Point(3, 4), Point(14, 5/7.):
22n/a print (p)
23n/a
24n/aclass Point(namedtuple('Point', 'x y')):
25n/a 'Point class with optimized _make() and _replace() without error-checking'
26n/a __slots__ = ()
27n/a _make = classmethod(tuple.__new__)
28n/a def _replace(self, _map=map, **kwds):
29n/a return self._make(_map(kwds.get, ('x', 'y'), self))
30n/a
31n/aprint(Point(11, 22)._replace(x=100))
32n/a
33n/aPoint3D = namedtuple('Point3D', Point._fields + ('z',))
34n/aprint(Point3D.__doc__)
35n/a
36n/aimport doctest, collections
37n/aTestResults = namedtuple('TestResults', 'failed attempted')
38n/aprint(TestResults(*doctest.testmod(collections)))