1--TEST--
2gmp_perfect_square() basic tests
3--SKIPIF--
4<?php if (!extension_loaded("gmp")) print "skip"; ?>
5--FILE--
6<?php
7
8var_dump(gmp_perfect_square(0));
9var_dump(gmp_perfect_square("0"));
10var_dump(gmp_perfect_square(-1));
11var_dump(gmp_perfect_square(1));
12var_dump(gmp_perfect_square(16));
13var_dump(gmp_perfect_square(17));
14var_dump(gmp_perfect_square("1000000"));
15var_dump(gmp_perfect_square("1000001"));
16
17$n = gmp_init(100101);
18var_dump(gmp_perfect_square($n));
19$n = gmp_init(64);
20var_dump(gmp_perfect_square($n));
21$n = gmp_init(-5);
22var_dump(gmp_perfect_square($n));
23
24try {
25    var_dump(gmp_perfect_square(array()));
26} catch (\TypeError $e) {
27    echo $e->getMessage() . \PHP_EOL;
28}
29
30echo "Done\n";
31?>
32--EXPECT--
33bool(true)
34bool(true)
35bool(false)
36bool(true)
37bool(true)
38bool(false)
39bool(true)
40bool(false)
41bool(false)
42bool(true)
43bool(false)
44gmp_perfect_square(): Argument #1 ($num) must be of type GMP|string|int, array given
45Done
46