isinstance tests
authorRobert Bradshaw <robertwb@math.washington.edu>
Tue, 30 Sep 2008 18:39:13 +0000 (11:39 -0700)
committerRobert Bradshaw <robertwb@math.washington.edu>
Tue, 30 Sep 2008 18:39:13 +0000 (11:39 -0700)
tests/run/isinstance.pyx [new file with mode: 0644]

diff --git a/tests/run/isinstance.pyx b/tests/run/isinstance.pyx
new file mode 100644 (file)
index 0000000..7c3d733
--- /dev/null
@@ -0,0 +1,35 @@
+__doc__ = u"""
+>>> test_all()
+True
+"""
+cdef class A:
+    pass
+
+def test_all():
+    # Optimized tests.
+    assert isinstance(type('a',(),{}), type)
+    assert isinstance(bool(), bool)
+    assert isinstance(int(), int)
+    assert isinstance(long(), long)
+    assert isinstance(float(), float)
+    assert isinstance(complex(), complex)
+    assert isinstance(bytes(), bytes)
+    assert isinstance(str(), str)
+    assert isinstance(unicode(), unicode)
+    assert isinstance(tuple(), tuple)
+    assert isinstance(list(), list)
+    assert isinstance(dict(), dict)
+#    if py_ver > (2, 3):
+#        assert isinstance(set(), set)
+    assert isinstance(slice(0), slice)
+    assert isinstance(A, type)
+    assert isinstance(A(), A)
+    assert not isinstance("foo", int)
+    
+    # Non-optimized
+    foo = A
+    assert isinstance(A(), foo)
+    assert isinstance(0, (int, long))
+    assert not isinstance("xyz", (int, long))
+    return True
+