github.com/aergoio/aergo@v1.3.1/libtool/src/gmp-6.1.2/demos/perl/test2.pl (about)

     1  # GMP perl module tests (part 2)
     2  
     3  # Copyright 2001 Free Software Foundation, Inc.
     4  #
     5  #  This file is part of the GNU MP Library.
     6  #
     7  #  The GNU MP Library is free software; you can redistribute it and/or modify
     8  #  it under the terms of either:
     9  #
    10  #    * the GNU Lesser General Public License as published by the Free
    11  #      Software Foundation; either version 3 of the License, or (at your
    12  #      option) any later version.
    13  #
    14  #  or
    15  #
    16  #    * the GNU General Public License as published by the Free Software
    17  #      Foundation; either version 2 of the License, or (at your option) any
    18  #      later version.
    19  #
    20  #  or both in parallel, as here.
    21  #
    22  #  The GNU MP Library is distributed in the hope that it will be useful, but
    23  #  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    24  #  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    25  #  for more details.
    26  #
    27  #  You should have received copies of the GNU General Public License and the
    28  #  GNU Lesser General Public License along with the GNU MP Library.  If not,
    29  #  see https://www.gnu.org/licenses/.
    30  
    31  
    32  # The following uses of :constants seem to provoke segvs in perl 5.005_03,
    33  # so they're kept separate file to be run only on suitable perl versions.
    34  
    35  
    36  use GMP::Mpz qw(:constants);
    37  {
    38    my $a = 123;
    39    ok (UNIVERSAL::isa ($a, "GMP::Mpz"));
    40  }
    41  use GMP::Mpz qw(:noconstants);
    42  
    43  use GMP::Mpq qw(:constants);
    44  {
    45    my $a = 123;
    46    ok (UNIVERSAL::isa ($a, "GMP::Mpq"));
    47  }
    48  use GMP::Mpq qw(:noconstants);
    49  
    50  use GMP::Mpf qw(:constants);
    51  {
    52    my $a = 123;
    53    ok (UNIVERSAL::isa ($a, "GMP::Mpf"));
    54  }
    55  use GMP::Mpf qw(:noconstants);
    56  
    57  
    58  # compiled constants unchanged by clrbit etc when re-executed
    59  foreach (0, 1, 2) {
    60    use GMP::Mpz qw(:constants);
    61    my $a = 15;
    62    my $b = 6;
    63    use GMP::Mpz qw(:noconstants);
    64    clrbit ($a, 0);
    65    ok ($a == 14);
    66    setbit ($b, 0);
    67    ok ($b == 7);
    68  }
    69  
    70  1;
    71  
    72  
    73  # Local variables:
    74  # perl-indent-level: 2
    75  # End: