Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
3
Task/Test-integerness/Haskell/test-integerness-1.hs
Normal file
3
Task/Test-integerness/Haskell/test-integerness-1.hs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import Data.Decimal
|
||||
import Data.Ratio
|
||||
import Data.Complex
|
||||
2
Task/Test-integerness/Haskell/test-integerness-2.hs
Normal file
2
Task/Test-integerness/Haskell/test-integerness-2.hs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
class ContainsInteger a where
|
||||
isInteger :: a -> Bool
|
||||
2
Task/Test-integerness/Haskell/test-integerness-3.hs
Normal file
2
Task/Test-integerness/Haskell/test-integerness-3.hs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
instance ContainsInteger Int where isInteger _ = True
|
||||
instance ContainsInteger Integer where isInteger _ = True
|
||||
6
Task/Test-integerness/Haskell/test-integerness-4.hs
Normal file
6
Task/Test-integerness/Haskell/test-integerness-4.hs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
isIntegerF :: (Eq x, RealFrac x) => x -> Bool
|
||||
isIntegerF x = x == fromInteger (truncate x)
|
||||
|
||||
instance ContainsInteger Double where isInteger = isIntegerF
|
||||
instance Integral i => ContainsInteger (DecimalRaw i) where isInteger = isIntegerF
|
||||
instance Integral i => ContainsInteger (Ratio i) where isInteger = isIntegerF
|
||||
2
Task/Test-integerness/Haskell/test-integerness-5.hs
Normal file
2
Task/Test-integerness/Haskell/test-integerness-5.hs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
instance (Eq a, Num a, ContainsInteger a) => ContainsInteger (Complex a) where
|
||||
isInteger z = isInteger (realPart z) && (imagPart z == 0)
|
||||
7
Task/Test-integerness/Haskell/test-integerness-6.hs
Normal file
7
Task/Test-integerness/Haskell/test-integerness-6.hs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
x ~~ eps = abs x <= eps
|
||||
|
||||
almostInteger :: RealFrac a => a -> a -> Bool
|
||||
almostInteger eps x = (x - fromInteger (round x)) ~~ eps
|
||||
|
||||
almostIntegerC :: RealFrac a => a -> Complex a -> Bool
|
||||
almostIntegerC eps z = almostInteger eps (realPart z) && (imagPart z) ~~ eps
|
||||
25
Task/Test-integerness/Haskell/test-integerness-7.hs
Normal file
25
Task/Test-integerness/Haskell/test-integerness-7.hs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
tests = all (== True)
|
||||
[ isInteger (5 :: Integer)
|
||||
, isInteger (5.0 :: Decimal)
|
||||
, isInteger (-5 :: Integer)
|
||||
, isInteger (0 :: Decimal)
|
||||
, isInteger (-2.1e120 :: Double)
|
||||
, isInteger (5 % 1 :: Rational)
|
||||
, isInteger (4 % 2 :: Rational)
|
||||
, isInteger (5 :+ 0 :: Complex Integer)
|
||||
, isInteger (5.0 :+ 0.0 :: Complex Decimal)
|
||||
, isInteger (6 % 3 :+ 0 :: Complex Rational)
|
||||
, isInteger (1/0 :: Double) -- Infinity is integer
|
||||
, isInteger (1.1/0 :: Double) -- Infinity is integer
|
||||
, not $ isInteger (5.01 :: Decimal)
|
||||
, not $ isInteger (-5e-2 :: Double)
|
||||
, not $ isInteger (5 % 3 :: Rational)
|
||||
, not $ isInteger (5 :+ 1 :: Complex Integer)
|
||||
, not $ isInteger (6 % 4 :+ 0 :: Complex Rational)
|
||||
, not $ isInteger (5.0 :+ 1.0 :: Complex Decimal)
|
||||
, almostInteger 0.01 2.001
|
||||
, almostInteger 0.01 (-1.999999)
|
||||
, almostInteger (1 % 10) (24 % 23)
|
||||
, not $ almostInteger 0.01 2.02
|
||||
, almostIntegerC 0.001 (5.999999 :+ 0.000001)
|
||||
]
|
||||
6
Task/Test-integerness/Haskell/test-integerness-8.hs
Normal file
6
Task/Test-integerness/Haskell/test-integerness-8.hs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
pithagoreanTriangles :: [[Integer]]
|
||||
pithagoreanTriangles =
|
||||
[ [a, b, round c] | b <- [1..]
|
||||
, a <- [1..b]
|
||||
, let c = sqrt (fromInteger (a^2 + b^2))
|
||||
, isInteger (c :: Double) ]
|
||||
Loading…
Add table
Add a link
Reference in a new issue