{-# LANGUAGE NoImplicitPrelude #-}
module Aftovolio.Tests where
import GHC.Base
import GHC.Enum (toEnum)
import GHC.Int (Int8)
import GHC.List (elem)
import GHC.Num ((*), (+), (-))
import GHC.Real (quot, rem)
sel :: Int -> [[Int8]]
sel :: Int -> [[Int8]]
sel Int
x
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
1 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
< Int
0 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
> Int
179 = []
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
0 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
4 = [[Int8
1], [Int8
2, Int8
1], [Int8
3, Int8
2], [Int8
4, Int8
3, Int8
2], [Int8
5, Int8
4, Int8
3], [Int8
6, Int8
5, Int8
4, Int8
3, Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
2 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
5 = [[Int8
1], [Int8
2], [Int8
3], [Int8
4, Int8
3], [Int8
5, Int8
4], [Int8
6, Int8
5, Int8
4]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
7 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
8 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
9 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
20 Bool -> Bool -> Bool
&& Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
26 Bool -> Bool -> Bool
&& Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
/= Int
21 = [[Int8
1]]
| Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
27 Bool -> Bool -> Bool
&& Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
29 = [[Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
30 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
34 = [[Int8
1], [Int8
2, Int8
1]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
32 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
35 = [[Int8
1], [Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
37 Bool -> Bool -> Bool
&& Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
39 = [[Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
40 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
44 = [[Int8
1], [Int8
2, Int8
1], [Int8
3, Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
42 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
45 = [[Int8
1], [Int8
2], [Int8
3]]
| Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
47 Bool -> Bool -> Bool
&& Int
x Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
49 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
50 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
54 = [[Int8
1], [Int8
2, Int8
1], [Int8
3, Int8
2], [Int8
4, Int8
3, Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
52 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
55 = [[Int8
1], [Int8
2], [Int8
3], [Int8
4, Int8
3]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
57 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
58 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
59 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
60 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
64 = [[Int8
1], [Int8
2, Int8
1], [Int8
3, Int8
2], [Int8
4, Int8
3, Int8
2], [Int8
5, Int8
4, Int8
3]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
62 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
65 = [[Int8
1], [Int8
2], [Int8
3], [Int8
4, Int8
3], [Int8
5, Int8
4]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
67 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
68 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
69 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
70 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
74 = [[Int8
2, Int8
1], [Int8
3, Int8
2], [Int8
4, Int8
3, Int8
2], [Int8
5, Int8
4, Int8
3], [Int8
6, Int8
5, Int8
4, Int8
3, Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
72 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
75 = [[Int8
2], [Int8
3], [Int8
4, Int8
3], [Int8
5, Int8
4], [Int8
6, Int8
5, Int8
4]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
77 = [[Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
78 = [[Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
79 = [[Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
80 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
84 = [[Int8
3, Int8
2], [Int8
4, Int8
3, Int8
2], [Int8
5, Int8
4, Int8
3], [Int8
6, Int8
5, Int8
4, Int8
3, Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
82 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
85 = [[Int8
3], [Int8
4, Int8
3], [Int8
5, Int8
4], [Int8
6, Int8
5, Int8
4]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
87 = [[Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
88 = [[Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
89 = [[Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
90 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
94 = [[Int8
4, Int8
3, Int8
2], [Int8
5, Int8
4, Int8
3], [Int8
6, Int8
5, Int8
4, Int8
3, Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
92 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
95 = [[Int8
4, Int8
3], [Int8
5, Int8
4], [Int8
6, Int8
5, Int8
4]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
97 = [[Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
98 = [[Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
99 = [[Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
100 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
104 = [[Int8
1], [Int8
2, Int8
1], [Int8
4, Int8
3, Int8
2], [Int8
6, Int8
5, Int8
4, Int8
3, Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
102 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
105 = [[Int8
1], [Int8
2], [Int8
4, Int8
3], [Int8
6, Int8
5, Int8
4]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
107 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
108 = [[Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
109 = [[Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
150 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
154 = [[Int8
1], [Int8
2, Int8
1], [Int8
4, Int8
3, Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
152 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
155 = [[Int8
1], [Int8
2], [Int8
4, Int8
3]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
157 = [[Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
158 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
159 = [[Int8
0], [Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
170 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
174 = [[Int8
2, Int8
1], [Int8
4, Int8
3, Int8
2], [Int8
6, Int8
5, Int8
4, Int8
3, Int8
2]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
172 Bool -> Bool -> Bool
|| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
175 = [[Int8
2], [Int8
4, Int8
3], [Int8
6, Int8
5, Int8
4]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
177 = [[Int8
1, Int8
0], [Int8
1, Int8
0], [Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
178 = [[Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0]]
| Int
x Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
179 = [[Int8
1, Int8
0], [Int8
2, Int8
1, Int8
0], [Int8
3, Int8
2, Int8
1, Int8
0]]
| Bool
otherwise = [[Int8
1], [Int8
1], [Int8
2, Int8
1], [Int8
3, Int8
2, Int8
1], [Int8
3, Int8
2], [Int8
4, Int8
3, Int8
2]]
sel2 :: Int -> [Int8]
sel2 :: Int -> [Int8]
sel2 Int
y
| Int
y Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
1 Bool -> Bool -> Bool
|| Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
< Int
0 Bool -> Bool -> Bool
|| Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
> Int
179 = []
| (Int -> Int -> Int
forall a. Integral a => a -> a -> a
rem Int
y Int
10 Int -> [Int] -> Bool
forall a. Eq a => a -> [a] -> Bool
`elem` [Int
1, Int
3, Int
6]) Bool -> Bool -> Bool
|| Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
0 Bool -> Bool -> Bool
&& Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
9 = [Int8
2 .. Int8
7]
| Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
20 Bool -> Bool -> Bool
&& Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
69 = [Int8
2 .. Int -> Int8
forall a. Enum a => Int -> a
toEnum (Int
y Int -> Int -> Int
forall a. Integral a => a -> a -> a
`quot` Int
10)]
| Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
70 Bool -> Bool -> Bool
&& Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
99 = [Int -> Int8
forall a. Enum a => Int -> a
toEnum (Int
y Int -> Int -> Int
forall a. Integral a => a -> a -> a
`quot` Int
10) Int8 -> Int8 -> Int8
forall a. Num a => a -> a -> a
- Int8
4 .. Int8
7]
| Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
100 Bool -> Bool -> Bool
&& Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
109 = [Int8
2, Int8
3, Int8
5, Int8
7]
| Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
150 Bool -> Bool -> Bool
&& Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
159 = [Int8
2, Int8
3, Int8
5]
| Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
170 Bool -> Bool -> Bool
&& Int
y Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
179 = [Int8
3, Int8
5, Int8
7]
| Bool
otherwise = [Int8
2 .. Int8
7]
minMax11ByCList :: (Ord a) => (a -> a -> Ordering) -> [a] -> (a, a)
minMax11ByCList :: forall a. Ord a => (a -> a -> Ordering) -> [a] -> (a, a)
minMax11ByCList a -> a -> Ordering
g xs :: [a]
xs@(a
x : a
y : [a]
ys) = (a -> (a, a) -> (a, a)) -> (a, a) -> [a] -> (a, a)
forall a b. (a -> b -> b) -> b -> [a] -> b
foldr a -> (a, a) -> (a, a)
f (if a
x a -> a -> Bool
forall a. Ord a => a -> a -> Bool
> a
y then (a
y, a
x) else (a
x, a
y)) [a]
ys
where
f :: a -> (a, a) -> (a, a)
f a
z (a
x, a
y)
| a -> a -> Ordering
g a
z a
x Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Ordering
LT = (a
z, a
y)
| a -> a -> Ordering
g a
z a
y Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Ordering
GT = (a
x, a
z)
| Bool
otherwise = (a
x, a
y)
minMax11ByCList a -> a -> Ordering
_ [a]
_ = (a, a)
forall a. HasCallStack => a
undefined