pgen.c: Add a binding for Catacomb's `primeiter'.
[catacomb-python] / t / t-pgen.py
index dd66903..651ce70 100644 (file)
@@ -223,6 +223,22 @@ class TestPGen (U.TestCase):
     me.assertEqual(p.nbits, 512)
     me.assertEqual(ev.events, "[p [h]:F17/P6/D][p:F60/P26/D]")
 
+###--------------------------------------------------------------------------
+class TestPrimeIter (U.TestCase):
+
+  def test(me):
+    me.assertEqual(list(I.islice(C.PrimeIter(0), 5)), [2, 3, 5, 7, 11])
+    me.assertEqual(list(I.islice(C.PrimeIter(1000), 5)),
+                   [1009, 1013, 1019, 1021, 1031])
+    me.assertEqual(list(I.islice(C.PrimeIter(1000000), 5)),
+                   [1000003, 1000033, 1000037, 1000039, 1000081])
+    me.assertEqual(list(I.islice(C.PrimeIter(1000000000000000000000000000000000000), 5)),
+                   [1000000000000000000000000000000000067,
+                    1000000000000000000000000000000000123,
+                    1000000000000000000000000000000000141,
+                    1000000000000000000000000000000000159,
+                    1000000000000000000000000000000000163])
+
 ###----- That's all, folks --------------------------------------------------
 
 if __name__ == "__main__": U.main()