[project @ 1998-12-02 13:17:09 by simonm]
[ghc-hetmet.git] / ghc / interpreter / test / runtime / r005.hs
1 --!!! Testing arithmetic operators
2
3 -- Int primitives
4
5  -- standard show function will produce garbage for primMinInt
6 test1 = show (1 + minBound::Int, minBound::Int)
7 test2 = show (maxBound::Int)
8 test3 = show $ (1 + 2::Int)
9 test4 = show $ (1 - 2::Int)
10 test5 = show $ (3 * 5::Int)
11 test6 = show $ (-(10::Int))
12 test7 = show $ (even (10::Int), even (11::Int))
13 test8 = show $ (10 == (10::Int), 10 == (11::Int))
14 test9 = show $ [ x `quotRem` (y::Int) | x <- [-5,0,5], y <- [-3,3] ]
15 test10 = show $ [ x `divMod` (y::Int) | x <- [-5,0,5], y <- [-3,3] ]
16 test11 = show $ 1 `quot` (0::Int)
17 test12 = show $ 1 `rem` (0::Int)
18
19 -- Integer primitives
20
21 --test21 = show (1 + minBound::Integer, minBound::Integer)
22 --test22 = show (maxBound::Integer)
23 test23 = show $ (1 + 2::Integer)
24 test24 = show $ (1 - 2::Integer)
25 test25 = show $ (3 * 5::Integer)
26 test26 = show $ (-(10::Integer))
27 test27 = show $ (even (10::Integer), even (11::Integer))
28 test28 = show $ (10 == (10::Integer), 10 == (11::Integer))
29 test29 = show $ [ x `quotRem` (y::Integer) | x <- [-5,0,5], y <- [-3,3] ]
30 test30 = show $ [ x `divMod` (y::Integer) | x <- [-5,0,5], y <- [-3,3] ]
31 test31 = show $ 1 `quot` (0::Integer)
32 test32 = show $ 1 `rem` (0::Integer)
33
34 -- Float primitives
35
36 --test41 = show (1 + minBound::Float, minBound::Float)
37 --test42 = show (maxBound::Float)
38 test43 = show $ (1 + 2::Float)
39 test44 = show $ (1 - 2::Float)
40 test45 = show $ (3 * 5::Float)
41 test46 = show $ (-(10::Float))
42 test47 = show $ (10 == (10::Float), 10 == (11::Float))
43 test48 = show $ [ x / (y::Float) | x <- [-5,0,5], y <- [-3,3] ]
44 test49 = show $ 1 / (0::Float)
45
46 test50 = show $ (pi::Float)
47 test51 = show $ map sin  [0.0, 0.3, 0.6, 1.0::Float]
48 test52 = show $ map cos  [0.0, 0.3, 0.6, 1.0::Float]
49 test53 = show $ map tan  [0.0, 0.3, 0.6, 1.0::Float]
50 test54 = show $ map asin [0.0, 0.3, 0.6, 1.0::Float]
51 test55 = show $ map acos [0.0, 0.3, 0.6, 1.0::Float]
52 test56 = show $ map atan [0.0, 0.3, 0.6, 1.0::Float]
53 test57 = show $ map exp  [0.0, 0.3, 0.6, 1.0::Float]
54
55 test58 = show $ map log  [0.3, 0.6, 1.0, 10.0::Float]
56 test59 = show $ log 0.0
57
58 --primitive primLog10Float "primLog10Float" :: Float -> Float
59 --test60 = show $ map primLog10Float [0.3, 0.6, 1.0, 10.0]
60 --test61 = show $ primLog10Float 0.0
61
62 test62 = show $ map sqrt [0.0, 0.3, 0.6, 1.0::Float]
63 test63 = show $ sqrt (-1.0::Float)
64
65 -- not in Hugs prelude, rounds towards zero
66 --primitive primFloatToInt "primFloatToInt" :: Float -> Int
67 --test64 = show $ map primFloatToInt [-2,-1.6,-1.5,-1.4,-1,0,1,2.0,2.4,2.5,2.6,pi,10]
68
69 test65 = show $ floatDigits (1.0 :: Float)
70 test66 = show $ floatDigits (error "test66" :: Float) -- laziness check
71
72 test67 = show $ floatRange (1.0 :: Float)
73 test68 = show $ floatRange (error "test68" :: Float) -- laziness check
74
75 test69 = show $ floatRadix (1.0 :: Float)
76 test70 = show $ floatRadix (error "test70" :: Float) -- laziness check
77
78
79
80 -- Double primitives
81
82 --test81 = show (1 + minBound::Double, minBound::Double)
83 --test82 = show (maxBound::Double)
84 test83 = show $ (1 + 2::Double)
85 test84 = show $ (1 - 2::Double)
86 test85 = show $ (3 * 5::Double)
87 test86 = show $ (-(10::Double))
88 test87 = show $ (10 == (10::Double), 10 == (11::Double))
89 test88 = show $ [ x / (y::Double) | x <- [-5,0,5], y <- [-3,3] ]
90 test89 = show $ 1 / (0::Double)
91
92 test90 = show $ (pi::Double)
93 test91 = show $ map sin  [0.0, 0.3, 0.6, 1.0::Double]
94 test92 = show $ map cos  [0.0, 0.3, 0.6, 1.0::Double]
95 test93 = show $ map tan  [0.0, 0.3, 0.6, 1.0::Double]
96 test94 = show $ map asin [0.0, 0.3, 0.6, 1.0::Double]
97 test95 = show $ map acos [0.0, 0.3, 0.6, 1.0::Double]
98 test96 = show $ map atan [0.0, 0.3, 0.6, 1.0::Double]
99 test97 = show $ map exp  [0.0, 0.3, 0.6, 1.0::Double]
100
101 test98 = show $ map log  [0.3, 0.6, 1.0, 10.0::Double]
102 test99 = show $ log 0.0
103
104 --primitive primLog10Double "primLog10Double" :: Double -> Double
105 --test100 = show $ map primLog10Double [0.3, 0.6, 1.0, 10.0]
106 --test101 = show $ primLog10Double 0.0
107
108 test102 = show $ map sqrt [0.0, 0.3, 0.6, 1.0::Double]
109 test103 = show $ sqrt (-1.0::Double)
110
111 -- not in Hugs prelude, rounds towards zero
112 --primitive primDoubleToInt "primDoubleToInt" :: Double -> Int
113 --test104 = show $ map primDoubleToInt [-2,-1.6,-1.5,-1.4,-1,0,1,2.0,2.4,2.5,2.6,pi,10]
114
115 test105 = show $ floatDigits (1.0 :: Double)
116 test106 = show $ floatDigits (error "test106" :: Double) -- laziness check
117
118 test107 = show $ floatRange (1.0 :: Double)
119 test108 = show $ floatRange (error "test108" :: Double) -- laziness check
120
121 test109 = show $ floatRadix (1.0 :: Double)
122 test110 = show $ floatRadix (error "test110" :: Double) -- laziness check
123
124
125 -- Char primitives
126
127 test120 = show ('a' == 'b', 'b' == 'b', 'b' == 'a')
128 test121 = show ('a' <= 'b', 'b' <= 'b', 'b' <= 'a')
129
130