Implement the trunc builtin for PEP 3141
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index b3e4733..d5fc85f 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -1515,6 +1515,20 @@
                 raise ValueError
         self.assertRaises(ValueError, sum, BadSeq())
 
+    def test_trunc(self):
+        class TestTrunc:
+            def __trunc__(self):
+                return 23
+
+        class TestNoTrunc:
+            pass
+
+        self.assertEqual(trunc(TestTrunc()), 23)
+
+        self.assertRaises(TypeError, trunc)
+        self.assertRaises(TypeError, trunc, 1, 2)
+        self.assertRaises(TypeError, trunc, TestNoTrunc())
+
     def test_tuple(self):
         self.assertEqual(tuple(()), ())
         t0_3 = (0, 1, 2, 3)