summaryrefslogtreecommitdiff
path: root/testsuite/tests/lib
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/lib')
-rw-r--r--testsuite/tests/lib/integer/integerGmpInternals.hs28
-rw-r--r--testsuite/tests/lib/integer/integerGmpInternals.stdout19
2 files changed, 42 insertions, 5 deletions
diff --git a/testsuite/tests/lib/integer/integerGmpInternals.hs b/testsuite/tests/lib/integer/integerGmpInternals.hs
index 628f8e00fc..e45c6f4a48 100644
--- a/testsuite/tests/lib/integer/integerGmpInternals.hs
+++ b/testsuite/tests/lib/integer/integerGmpInternals.hs
@@ -20,13 +20,11 @@ import qualified GHC.Integer.GMP.Internals as I
recipModInteger :: Integer -> Integer -> Integer
recipModInteger = I.recipModInteger
--- FIXME: Lacks GMP2 version
gcdExtInteger :: Integer -> Integer -> (Integer, Integer)
gcdExtInteger a b = case I.gcdExtInteger a b of (# g, s #) -> (g, s)
--- FIXME: Lacks GMP2 version
powModSecInteger :: Integer -> Integer -> Integer -> Integer
-powModSecInteger = powModInteger
+powModSecInteger = I.powModSecInteger
powModInteger :: Integer -> Integer -> Integer -> Integer
powModInteger = I.powModInteger
@@ -81,14 +79,36 @@ main = do
print $ powModInteger b e m
print $ powModInteger b e (m-1)
print $ powModSecInteger b e (m-1)
+
+ putStrLn "\n# gcdExtInteger"
print $ gcdExtInteger b e
print $ gcdExtInteger e b
print $ gcdExtInteger x y
print $ gcdExtInteger y x
+ print $ gcdExtInteger x (-y)
+ print $ gcdExtInteger (-x) y
+ print $ gcdExtInteger (-x) (-y)
+
+ -- see Trac #15350
+ do
+ let a = 2
+ b = 2^65 + 1
+ print $ gcdExtInteger a b
+ print $ gcdExtInteger a (-b)
+ print $ gcdExtInteger (-a) b
+ print $ gcdExtInteger (-a) (-b)
+ print $ gcdExtInteger b a
+ print $ gcdExtInteger b (-a)
+ print $ gcdExtInteger (-b) a
+ print $ gcdExtInteger (-b) (-a)
+
+ putStrLn "\n# powInteger"
print $ powInteger 12345 0
print $ powInteger 12345 1
print $ powInteger 12345 30
- print $ [ (x,i) | x <- [0..71], let i = recipModInteger x (2*3*11*11*17*17), i /= 0 ]
+ print $ [ (x,i) | x <- [-7..71], let i = recipModInteger x (2*3*11*11*17*17), i /= 0 ]
+
+ putStrLn "\n# nextPrimeInteger"
print $ I.nextPrimeInteger b
print $ I.nextPrimeInteger e
print $ [ k | k <- [ 0 .. 200 ], S# (I.testPrimeInteger k 25#) `elem` [1,2] ]
diff --git a/testsuite/tests/lib/integer/integerGmpInternals.stdout b/testsuite/tests/lib/integer/integerGmpInternals.stdout
index e5cf7f6280..cff835bd27 100644
--- a/testsuite/tests/lib/integer/integerGmpInternals.stdout
+++ b/testsuite/tests/lib/integer/integerGmpInternals.stdout
@@ -1,14 +1,31 @@
1527229998585248450016808958343740453059
682382427572745901624116300491295556924
682382427572745901624116300491295556924
+
+# gcdExtInteger
(1,-238164827888328100873319793437342927637138278785737103723156342382925)
(1,302679100340807588460107986194035692812415103244388831792688023418704)
(92889294,115110207004456909698806038261)
(92889294,-19137667681784054624628973533)
+(92889294,115110207004456909698806038261)
+(92889294,-115110207004456909698806038261)
+(92889294,-115110207004456909698806038261)
+(1,-18446744073709551616)
+(1,-18446744073709551616)
+(1,18446744073709551616)
+(1,18446744073709551616)
+(1,1)
+(1,1)
+(1,-1)
+(1,-1)
+
+# powInteger
1
12345
555562377826831043419246079513769804614412256811161773362797946971665712715296306339052301636736176350153982639312744140625
-[(1,1),(5,41963),(7,59947),(13,177535),(19,143557),(23,182447),(25,134281),(29,7235),(31,33841),(35,95915),(37,113413),(41,61409),(43,24397),(47,174101),(49,158431),(53,193979),(59,188477),(61,185737),(65,35507),(67,118999),(71,186173)]
+[(-7,149867),(-5,167851),(-1,209813),(1,1),(5,41963),(7,59947),(13,177535),(19,143557),(23,182447),(25,134281),(29,7235),(31,33841),(35,95915),(37,113413),(41,61409),(43,24397),(47,174101),(49,158431),(53,193979),(59,188477),(61,185737),(65,35507),(67,118999),(71,186173)]
+
+# nextPrimeInteger
2988348162058574136915891421498819466320163312926952423791023078876343
2351399303373464486466122544523690094744975233415544072992656881240451
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199]