]> git.proxmox.com Git - mirror_edk2.git/blob - AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_compare.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / test / test_compare.py
1 import unittest
2 from test import test_support
3
4 class Empty:
5 def __repr__(self):
6 return '<Empty>'
7
8 class Coerce:
9 def __init__(self, arg):
10 self.arg = arg
11
12 def __repr__(self):
13 return '<Coerce %s>' % self.arg
14
15 def __coerce__(self, other):
16 if isinstance(other, Coerce):
17 return self.arg, other.arg
18 else:
19 return self.arg, other
20
21 class Cmp:
22 def __init__(self,arg):
23 self.arg = arg
24
25 def __repr__(self):
26 return '<Cmp %s>' % self.arg
27
28 def __cmp__(self, other):
29 return cmp(self.arg, other)
30
31 class ComparisonTest(unittest.TestCase):
32 set1 = [2, 2.0, 2L, 2+0j, Coerce(2), Cmp(2.0)]
33 set2 = [[1], (3,), None, Empty()]
34 candidates = set1 + set2
35
36 def test_comparisons(self):
37 for a in self.candidates:
38 for b in self.candidates:
39 if ((a in self.set1) and (b in self.set1)) or a is b:
40 self.assertEqual(a, b)
41 else:
42 self.assertNotEqual(a, b)
43
44 def test_id_comparisons(self):
45 # Ensure default comparison compares id() of args
46 L = []
47 for i in range(10):
48 L.insert(len(L)//2, Empty())
49 for a in L:
50 for b in L:
51 self.assertEqual(cmp(a, b), cmp(id(a), id(b)),
52 'a=%r, b=%r' % (a, b))
53
54 def test_main():
55 test_support.run_unittest(ComparisonTest)
56
57 if __name__ == '__main__':
58 test_main()