41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from test.test_support import run_unittest, _check_py3k_warnings
|
|
import unittest
|
|
import sys
|
|
|
|
class TestImplementationComparisons(unittest.TestCase):
|
|
|
|
def test_type_comparisons(self):
|
|
self.assertTrue(str < int or str > int)
|
|
self.assertTrue(int <= str or int >= str)
|
|
self.assertTrue(cmp(int, str) != 0)
|
|
self.assertTrue(int is int)
|
|
self.assertTrue(str == str)
|
|
self.assertTrue(int != str)
|
|
|
|
def test_cell_comparisons(self):
|
|
def f(x):
|
|
if x:
|
|
y = 1
|
|
def g():
|
|
return x
|
|
def h():
|
|
return y
|
|
return g, h
|
|
g, h = f(0)
|
|
g_cell, = g.func_closure
|
|
h_cell, = h.func_closure
|
|
self.assertTrue(h_cell < g_cell)
|
|
self.assertTrue(g_cell >= h_cell)
|
|
self.assertEqual(cmp(g_cell, h_cell), 1)
|
|
self.assertTrue(g_cell is g_cell)
|
|
self.assertTrue(g_cell == g_cell)
|
|
self.assertTrue(h_cell == h_cell)
|
|
self.assertTrue(g_cell != h_cell)
|
|
|
|
def test_main():
|
|
with _check_py3k_warnings():
|
|
run_unittest(TestImplementationComparisons)
|
|
|
|
if __name__ == '__main__':
|
|
test_main()
|