from test.test_support import run_unittest, check_py3k_warnings | |
import unittest | |
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() |