The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl
use strict;
use warnings;

use Test::More;
use Math::Prime::Util qw/nth_prime/;

my %nthvals = (
                   1 =>                    2,
                   2 =>                    3,
                   4 =>                    7,
                   8 =>                   19,
                  16 =>                   53,
                  32 =>                  131,
                  64 =>                  311,
                 128 =>                  719,
                 256 =>                 1619,
                 512 =>                 3671,
                1024 =>                 8161,
                2048 =>                17863,
                4096 =>                38873,
                8192 =>                84017,
               16384 =>               180503,
               32768 =>               386093,
               65536 =>               821641,
              131072 =>              1742537,
              262144 =>              3681131,
              524288 =>              7754077,
             1048576 =>             16290047,
             2097152 =>             34136029,
             4194304 =>             71378569,
             8388608 =>            148948139,
            16777216 =>            310248241,
            33554432 =>            645155197,
            67108864 =>           1339484197,
           134217728 =>           2777105129,
           268435456 =>           5750079047,
           536870912 =>          11891268401,
          1073741824 =>          24563311309,
          2147483648 =>          50685770167,
          4294967296 =>         104484802057,
          8589934592 =>         215187847711,
         17179869184 =>         442795487221,
         34359738368 =>         910399916939,
         68719476736 =>        1870358526653,
        137438953472 =>        3839726846311,
        274877906944 =>        7877263558621,
        549755813888 =>       16149760533341,
       1099511627776 =>       33089240375501,
       2199023255552 =>       67756520645329,
       4398046511104 =>      138666449011757,
       8796093022208 =>      283634652716357,
      17592186044416 =>      579863159340527,
      35184372088832 =>     1184895616861903,
      70368744177664 =>     2420094683001859,
     140737488355328 =>     4940729268330643,
     281474976710656 =>    10082409897709157,
     562949953421312 =>    20566476729238691,
    1125899906842624 =>    41935796950796653,
    2251799813685248 =>    85476377250109733,
    4503599627370496 =>   174160587542317721,
    9007199254740992 =>   354733509412061993,
   18014398509481984 =>   722285281729443799,
   36028797018963968 =>  1470194760556507397,
   72057594037927936 =>  2991614170035124397,
                  10 =>                   29,
                 100 =>                  541,
                1000 =>                 7919,
               10000 =>               104729,
              100000 =>              1299709,
             1000000 =>             15485863,
            10000000 =>            179424673,
           100000000 =>           2038074743,
          1000000000 =>          22801763489,
         10000000000 =>         252097800623,
        100000000000 =>        2760727302517,
       1000000000000 =>       29996224275833,
      10000000000000 =>      323780508946331,
     100000000000000 =>     3475385758524527,
    1000000000000000 =>    37124508045065437,
   10000000000000000 =>   394906913903735329,
  100000000000000000 =>  4185296581467695669,
#  1000000000000000000 => 44211790234832169331,
# 10000000000000000000 => 465675465116607065549,
);

# Keep things to a reasonable run time, assuming using LMO nth_prime.
# Using LMOS or Lehmer, this will take a very long time.  Using a normal
# sieve method will need a much, much lower limit.
delete @nthvals{ grep { $_ > 100_000_000_000_000 } keys %nthvals };

plan tests => scalar(keys %nthvals);

foreach my $n (sort {$a <=> $b} keys %nthvals) {
  my $nth = $nthvals{$n};
  is( nth_prime($n), $nth, "Prime($n) = $nth" );
}