[project @ 2000-12-12 17:21:40 by simonmar]
[ghc-hetmet.git] / ghc / tests / lib / should_run / enum01.stdout
1 Testing Enum Int: 
2     (succ (0::Int)) = 1
3     (succ (minBound::Int)) = -2147483647
4     (succ (maxBound::Int)) = error "Prelude.Enum.succ{Int}: tried to take `succ' of maxBound"
5     pred (1::Int) = 0
6     pred (maxBound::Int) = 2147483646
7     pred (minBound::Int) = error "Prelude.Enum.pred{Int}: tried to take `pred' of minBound"
8     (map (toEnum::Int->Int) [1,minBound,maxBound]) = [1,-2147483648,2147483647]
9     (map fromEnum [(1::Int),minBound,maxBound]) = [1,-2147483648,2147483647]
10     (take 7 [(1::Int)..]) = [1,2,3,4,5,6,7]
11     (take 7 [((maxBound::Int)-5)..]) = [2147483642,2147483643,2147483644,2147483645,2147483646,2147483647]
12     (take 7 [(1::Int),2..]) = [1,2,3,4,5,6,7]
13     (take 7 [(1::Int),7..]) = [1,7,13,19,25,31,37]
14     (take 7 [(1::Int),1..]) = [1,1,1,1,1,1,1]
15     (take 7 [(1::Int),0..]) = [1,0,-1,-2,-3,-4,-5]
16     (take 7 [(5::Int),2..]) = [5,2,-1,-4,-7,-10,-13]
17     (take 7 [x, x-1 ..]) = [-2147483647,-2147483648]
18     (take 7 [x, x-1 ..]) = [-2147483643,-2147483644,-2147483645,-2147483646,-2147483647,-2147483648]
19     (take 7 [x, (x+1) ..]) = [2147483642,2147483643,2147483644,2147483645,2147483646,2147483647]
20     (take 7 ([(1::Int) .. 5])) = [1,2,3,4,5]
21     (take 4 ([(1::Int) .. 1])) = [1]
22     (take 7 ([(1::Int) .. 0])) = []
23     (take 7 ([(5::Int) .. 0])) = []
24     (take 7 ([(maxBound-(5::Int)) .. maxBound])) = [2147483642,2147483643,2147483644,2147483645,2147483646,2147483647]
25     (take 7 ([(minBound+(5::Int)) .. minBound])) = []
26     (take 7 [(5::Int),4..1]) = [5,4,3,2,1]
27     (take 7 [(5::Int),3..1]) = [5,3,1]
28     (take 7 [(5::Int),3..2]) = [5,3]
29     (take 7 [(1::Int),2..1]) = [1]
30     (take 7 [(2::Int),1..2]) = [2]
31     (take 7 [(2::Int),1..1]) = [2,1]
32     (take 7 [(2::Int),3..1]) = []
33     (take 7 [x,(x+1)..maxBound]) = [2147483643,2147483644,2147483645,2147483646,2147483647]
34     (take 7 [x,(x-1)..minBound]) = [-2147483643,-2147483644,-2147483645,-2147483646,-2147483647,-2147483648]
35 Testing Enum Integer: 
36     (succ (0::Integer)) = 1
37     (succ ((-1)::Integer)) = 0
38     pred (1::Integer) = 0
39     pred (0::Integer) = -1
40     (map (toEnum::Int->Integer) [1,minBound,maxBound]) = [1,-2147483648,2147483647]
41     (map fromEnum [(1::Integer),42,45]) = [1,42,45]
42     (take 7 [(1::Integer)..]) = [1,2,3,4,5,6,7]
43     (take 7 [(-5::Integer)..]) = [-5,-4,-3,-2,-1,0,1]
44     (take 7 [(1::Integer),2..]) = [1,2,3,4,5,6,7]
45     (take 7 [(1::Integer),7..]) = [1,7,13,19,25,31,37]
46     (take 7 [(1::Integer),1..]) = [1,1,1,1,1,1,1]
47     (take 7 [(1::Integer),0..]) = [1,0,-1,-2,-3,-4,-5]
48     (take 7 [(5::Integer),2..]) = [5,2,-1,-4,-7,-10,-13]
49     (take 7 ([(1::Integer) .. 5])) = [1,2,3,4,5]
50     (take 4 ([(1::Integer) .. 1])) = [1]
51     (take 7 ([(1::Integer) .. 0])) = []
52     (take 7 ([(5::Integer) .. 0])) = []
53     (take 7 [(5::Integer),4..1]) = [5,4,3,2,1]
54     (take 7 [(5::Integer),3..1]) = [5,3,1]
55     (take 7 [(5::Integer),3..2]) = [5,3]
56     (take 7 [(1::Integer),2..1]) = [1]
57     (take 7 [(2::Integer),1..2]) = [2]
58     (take 7 [(2::Integer),1..1]) = [2,1]
59     (take 7 [(2::Integer),3..1]) = []
60 Testing Enum Char: 
61     (succ 'a') = 'b'
62     (succ (minBound::Char)) = '\SOH'
63     (succ (maxBound::Char)) = error "Prelude.Enum.Char.succ: bad argument"
64     (pred 'b') = 'a'
65     pred (maxBound::Char) = '\2147483646'
66     pred (minBound::Char) = error "Prelude.Enum.Char.pred: bad argument"
67     (map (toEnum::Int->Char) [123,ord (minBound::Char), ord(maxBound::Char)]) = "{\NUL\2147483647"
68     (toEnum::Int->Char) (minBound::Int) = error "Prelude.chr: bad argument"
69     (map fromEnum ['X',minBound,maxBound]) = [88,0,2147483647]
70     (take 7 ['\NUL' .. ]) = "\NUL\SOH\STX\ETX\EOT\ENQ\ACK"
71     (take 7 ['\250' .. ]) = "\250\251\252\253\254\255\256"
72     (take 7 ['a','b'..]) = "abcdefg"
73     (take 7 ['a','e'..]) = "aeimquy"
74     (take 7 ['a','a'..]) = "aaaaaaa"
75     (take 7 ['z','y'..]) = "zyxwvut"
76     (take 7 ['z','v'..]) = "zvrnjfb"
77     (take 7 ['\1', '\0' ..]) = "\SOH\NUL"
78     (take 7 ['\5', '\4' ..]) = "\ENQ\EOT\ETX\STX\SOH\NUL"
79     (take 7 ['\250', '\251' ..]) = "\250\251\252\253\254\255\256"
80     (take 7 (['a' .. 'e'])) = "abcde"
81     (take 4 (['a' .. 'a'])) = "a"
82     (take 7 (['b' .. 'a'])) = ""
83     (take 7 (['e' .. 'a'])) = ""
84     (take 7 (['\250' .. '\255'])) = "\250\251\252\253\254\255"
85     (take 7 (['\5' .. '\0'])) = ""
86     (take 7 ['f','e' .. 'b']) = "fedcb"
87     (take 7 ['g','e' .. 'b']) = "gec"
88     (take 7 ['g','d' .. 'c']) = "gd"
89     (take 7 ['b','c' .. 'b']) = "b"
90     (take 7 ['c','b' .. 'c']) = "c"
91     (take 7 ['c','b' .. 'b']) = "cb"
92     (take 7 ['c','d' .. 'b']) = ""
93     (take 7 ['\251', '\252' .. maxBound]) = "\251\252\253\254\255\256\257"
94     (take 7 ['\5', '\4' .. minBound]) = "\ENQ\EOT\ETX\STX\SOH\NUL"
95 Testing Enum (): 
96     (succ ()) = error "Prelude.Enum.().succ: bad argment"
97     (succ (minBound::())) = error "Prelude.Enum.().succ: bad argment"
98     (succ (maxBound::())) = error "Prelude.Enum.().succ: bad argment"
99     (pred ()) = error "Prelude.Enum.().pred: bad argument"
100     (pred (minBound::())) = error "Prelude.Enum.().pred: bad argument"
101     (pred (maxBound::())) = error "Prelude.Enum.().pred: bad argument"
102     (toEnum 0)::() = ()
103     (toEnum 1)::() = error "Prelude.Enum.().toEnum: bad argument"
104     (fromEnum ()) = 0
105     ([()..]) = [()]
106     ([(),()..]) = [()]
107     ([()..()]) = [()]
108     ([(),()..()]) = [()]
109 Testing Enum Ordering (derived): 
110     (succ LT) = EQ
111     (succ (minBound::Ordering)) = EQ
112     (succ (maxBound::Ordering)) = error "Prelude.Enum.Ordering.succ: bad argment"
113     (pred GT) = EQ
114     (pred (maxBound::Ordering)) = EQ
115     (pred (minBound::Ordering)) = error "Prelude.Enum.Ordering.pred: bad argment"
116     (toEnum 0)::Ordering = LT
117     (toEnum 5)::Ordering = error "Prelude.Enum.Ordering.toEnum: bad argment"
118     (fromEnum LT) = 0
119     (fromEnum EQ) = 1
120     (fromEnum GT) = 2
121     ([LT ..]) = [LT,EQ,GT]
122     ([EQ ..]) = [EQ,GT]
123     ([GT ..]) = [GT]
124     ([LT,EQ ..]) = [LT,EQ,GT]
125     ([EQ,GT ..]) = [EQ,GT]
126     ([EQ,LT ..]) = [EQ,LT]
127     ([LT,GT ..]) = [LT,GT]
128     ([GT,LT ..]) = [GT,LT]
129     take 7 (([GT,GT ..])) = [GT,GT,GT,GT,GT,GT,GT]
130     take 7 (([LT,LT ..])) = [LT,LT,LT,LT,LT,LT,LT]
131     ([LT .. GT]) = [LT,EQ,GT]
132     ([LT .. EQ]) = [LT,EQ]
133     ([LT .. LT]) = [LT]
134     ([GT .. LT]) = []
135     ([GT .. EQ]) = []
136     ([GT .. GT]) = [GT]
137     ([LT,EQ .. GT]) = [LT,EQ,GT]
138     ([GT,EQ .. LT]) = [GT,EQ,LT]
139     ([GT,EQ .. EQ]) = [GT,EQ]
140     ([GT,EQ .. GT]) = [GT]
141     ([GT,EQ .. LT]) = [GT,EQ,LT]
142     ([LT,EQ .. LT]) = [LT]
143     ([LT,EQ .. GT]) = [LT,EQ,GT]
144     take 7 (([LT,LT .. GT])) = [LT,LT,LT,LT,LT,LT,LT]
145     take 7 (([GT,GT .. LT])) = []
146 Testing Enum Bool: 
147     (succ False) = True
148     (succ (minBound::Bool)) = True
149     (succ (maxBound::Bool)) = error "Prelude.Enum.Bool.succ: bad argment"
150     (pred True) = False
151     (pred (maxBound::Bool)) = False
152     (pred (minBound::Bool)) = error "Prelude.Enum.Bool.pred: bad argment"
153     (toEnum 0)::Bool = False
154     (toEnum 5)::Bool = error "Prelude.Enum.Bool.toEnum: bad argment"
155     (fromEnum False) = 0
156     (fromEnum True) = 1
157     ([False ..]) = [False,True]
158     ([True ..]) = [True]
159     ([False,True ..]) = [False,True]
160     ([True,False ..]) = [True,False]
161     (take 7 ([False,False ..])) = [False,False,False,False,False,False,False]
162     (take 7 ([True,True ..])) = [True,True,True,True,True,True,True]
163     ([False .. True]) = [False,True]
164     ([True .. False]) = []
165     take 7 ([False,False .. False]) = [False,False,False,False,False,False,False]
166     take 7 ([False,False .. True]) = [False,False,False,False,False,False,False]
167     take 7 ([False,True .. False]) = [False]
168     take 7 ([False,True .. True]) = [False,True]
169     take 7 ([True,False .. False]) = [True,False]
170     take 7 ([True,False .. True]) = [True]
171     take 7 ([True,True .. False]) = []
172     take 7 ([True,True .. True]) = [True,True,True,True,True,True,True]
173 Testing Enum Rational: 
174     (succ (0::Rational)) = 1 % 1
175     (succ ((-1)::Rational)) = 0 % 1
176     pred (1::Rational) = 0 % 1
177     pred (0::Rational) = -1 % 1
178     (map (toEnum::Int->Rational) [1,minBound,maxBound]) = [1 % 1,-2147483648 % 1,2147483647 % 1]
179     (map fromEnum [(1::Rational),42,45]) = [1,42,45]
180     (take 7 [(1::Rational)..]) = [1 % 1,2 % 1,3 % 1,4 % 1,5 % 1,6 % 1,7 % 1]
181     (take 7 [(-5::Rational)..]) = [-5 % 1,-4 % 1,-3 % 1,-2 % 1,-1 % 1,0 % 1,1 % 1]
182     (take 7 [(1::Rational),2..]) = [1 % 1,2 % 1,3 % 1,4 % 1,5 % 1,6 % 1,7 % 1]
183     (take 7 [(1::Rational),7..]) = [1 % 1,7 % 1,13 % 1,19 % 1,25 % 1,31 % 1,37 % 1]
184     (take 7 [(1::Rational),1..]) = [1 % 1,1 % 1,1 % 1,1 % 1,1 % 1,1 % 1,1 % 1]
185     (take 7 [(1::Rational),0..]) = [1 % 1,0 % 1,-1 % 1,-2 % 1,-3 % 1,-4 % 1,-5 % 1]
186     (take 7 [(5::Rational),2..]) = [5 % 1,2 % 1,-1 % 1,-4 % 1,-7 % 1,-10 % 1,-13 % 1]
187     (take 7 ([(1::Rational) .. 5])) = [1 % 1,2 % 1,3 % 1,4 % 1,5 % 1]
188     (take 4 ([(1::Rational) .. 1])) = [1 % 1]
189     (take 7 ([(1::Rational) .. 0])) = []
190     (take 7 ([(5::Rational) .. 0])) = []
191     (take 7 [(5::Rational),4..1]) = [5 % 1,4 % 1,3 % 1,2 % 1,1 % 1]
192     (take 7 [(5::Rational),3..1]) = [5 % 1,3 % 1,1 % 1]
193     (take 7 [(5::Rational),3..2]) = [5 % 1,3 % 1,1 % 1]
194     (take 7 [(1::Rational),2..1]) = [1 % 1]
195     (take 7 [(2::Rational),1..2]) = [2 % 1]
196     (take 7 [(2::Rational),1..1]) = [2 % 1,1 % 1]
197     (take 7 [(2::Rational),3..1]) = []
198 Testing Enum (Ratio Int): 
199     (succ (0::Ratio Int)) = 1 % 1
200     (succ ((-1)::Ratio Int)) = 0 % 1
201     pred (1::Ratio Int) = 0 % 1
202     pred (0::Ratio Int) = -1 % 1
203     (map (toEnum::Int->Ratio Int) [1,minBound,maxBound]) = [1 % 1,-2147483648 % 1,2147483647 % 1]
204     (map fromEnum [(1::Ratio Int),42,45]) = [1,42,45]
205     (take 7 [(1::Ratio Int)..]) = [1 % 1,2 % 1,3 % 1,4 % 1,5 % 1,6 % 1,7 % 1]
206     (take 7 [(-5::Ratio Int)..]) = [-5 % 1,-4 % 1,-3 % 1,-2 % 1,-1 % 1,0 % 1,1 % 1]
207     (take 7 [((toEnum ((maxBound::Int)-5))::Ratio Int)..]) = [2147483642 % 1,2147483643 % 1,2147483644 % 1,2147483645 % 1,2147483646 % 1,2147483647 % 1,-2147483648 % 1]
208     (take 7 [(1::Ratio Int),2..]) = [1 % 1,2 % 1,3 % 1,4 % 1,5 % 1,6 % 1,7 % 1]
209     (take 7 [(1::Ratio Int),7..]) = [1 % 1,7 % 1,13 % 1,19 % 1,25 % 1,31 % 1,37 % 1]
210     (take 7 [(1::Ratio Int),1..]) = [1 % 1,1 % 1,1 % 1,1 % 1,1 % 1,1 % 1,1 % 1]
211     (take 7 [(1::Ratio Int),0..]) = [1 % 1,0 % 1,-1 % 1,-2 % 1,-3 % 1,-4 % 1,-5 % 1]
212     (take 7 [(5::Ratio Int),2..]) = [5 % 1,2 % 1,-1 % 1,-4 % 1,-7 % 1,-10 % 1,-13 % 1]
213     (take 7 [x, x-1 ..]) = [-2147483647 % 1,-2147483648 % 1,2147483647 % 1,2147483646 % 1,2147483645 % 1,2147483644 % 1,2147483643 % 1]
214     (take 7 [x, x-1 ..]) = [-2147483643 % 1,-2147483644 % 1,-2147483645 % 1,-2147483646 % 1,-2147483647 % 1,-2147483648 % 1,2147483647 % 1]
215     (take 7 [x, (x+1) ..]) = [2147483642 % 1,2147483643 % 1,2147483644 % 1,2147483645 % 1,2147483646 % 1,2147483647 % 1,-2147483648 % 1]
216     (take 7 ([(1::Ratio Int) .. 5])) = [1 % 1,2 % 1,3 % 1,4 % 1,5 % 1]
217     (take 4 ([(1::Ratio Int) .. 1])) = [1 % 1]
218     (take 7 ([(1::Ratio Int) .. 0])) = []
219     (take 7 ([(5::Ratio Int) .. 0])) = []
220     (take 7 ([x..y])) = [2147483642 % 1,2147483643 % 1,2147483644 % 1,2147483645 % 1,2147483646 % 1,2147483647 % 1]
221     (take 7 ([x..y])) = []
222     (take 7 [(5::Ratio Int),4..1]) = [5 % 1,4 % 1,3 % 1,2 % 1,1 % 1]
223     (take 7 [(5::Ratio Int),3..1]) = [5 % 1,3 % 1,1 % 1]
224     (take 7 [(5::Ratio Int),3..2]) = [5 % 1,3 % 1,1 % 1]
225     (take 7 [(1::Ratio Int),2..1]) = [1 % 1]
226     (take 7 [(2::Ratio Int),1..2]) = [2 % 1]
227     (take 7 [(2::Ratio Int),1..1]) = [2 % 1,1 % 1]
228     (take 7 [(2::Ratio Int),3..1]) = []
229     (take 7 [x,(x+1)..y]) = [2147483643 % 1,2147483644 % 1,2147483645 % 1,2147483646 % 1,2147483647 % 1]
230     (take 7 [x,(x-1)..y]) = [-2147483643 % 1,-2147483644 % 1,-2147483645 % 1,-2147483646 % 1,-2147483647 % 1,-2147483648 % 1]