1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
{-# LANGUAGE OverloadedStrings #-}
module TestECMWithTestSequenceCommon (
someEventsOnly,
numberEventsOnly,
pattern',
pattern'',
pattern''',
pattern'''',
testLookups,
printOutEvents,
printOutFailedPattern
) where
import qualified Caching.ExpiringCacheMap.Utils.TestSequence as TestSeq
import qualified Data.ByteString.Char8 as BS
printOutFailedPattern from_where filt_events' filt_events'' filt_events''' filt_events'''' = do
putStrLn $ "Failed sequence test in " ++ from_where ++ ":"
if not (pattern' (filt_events'))
then putStrLn $ "Failed: pattern 1: " ++ (show filt_events')
else return ()
if not (pattern'' (filt_events''))
then putStrLn $ "Failed: pattern 2: " ++ (show filt_events'')
else return ()
if not (pattern''' (filt_events'''))
then putStrLn $ "Failed: pattern 3: " ++ (show filt_events''')
else return ()
if not (pattern'''' (filt_events''''))
then putStrLn $ "Failed: pattern 4: " ++ (show filt_events'''')
else return ()
return ()
printOutEvents events' events'' events''' events'''' = do
(putStrLn . show . filter someEventsOnly . reverse) events'
(putStrLn . show . filter someEventsOnly . reverse) events''
(putStrLn . show . filter someEventsOnly . reverse) events'''
(putStrLn . show . filter someEventsOnly . reverse) events''''
return ()
someEventsOnly a =
case a of
TestSeq.GetTime _ -> True
TestSeq.ReadNumber _ -> True
TestSeq.HaveNumber _ -> True
_ -> False
numberEventsOnly a =
case a of
TestSeq.ReadNumber _ -> True
TestSeq.HaveNumber _ -> True
_ -> False
pattern' c =
case c of
[ TestSeq.ReadNumber numr1,
TestSeq.GetTime _,
TestSeq.HaveNumber numh1,
TestSeq.HaveNumber numh1',
TestSeq.ReadNumber numr2,
TestSeq.GetTime _,
TestSeq.HaveNumber numh2 ]
| numr1 == numh1 && numr1 == numh1' && numr2 == numh2 -> True
_ -> False
pattern'' c =
case c of
[ TestSeq.ReadNumber numr1,
TestSeq.GetTime _,
TestSeq.HaveNumber numh1,
TestSeq.GetTime _,
TestSeq.GetTime _,
TestSeq.HaveNumber numh1',
TestSeq.ReadNumber numr2,
TestSeq.GetTime _,
TestSeq.HaveNumber numh2 ]
| numr1 == numh1 && numr1 == numh1' && numr2 == numh2 -> True
_ -> False
pattern''' c =
case c of
[ TestSeq.ReadNumber numr1,
TestSeq.GetTime _,
TestSeq.HaveNumber numh1,
TestSeq.HaveNumber numh1',
TestSeq.ReadNumber numr2,
TestSeq.GetTime _,
TestSeq.HaveNumber numh2 ]
| numr1 == numh1 && numr1 == numh1' && numr2 == numh2 -> True
_ -> False
pattern'''' c =
case c of
[ TestSeq.ReadNumber numr1,
TestSeq.GetTime _,
TestSeq.HaveNumber numh1,
TestSeq.GetTime _,
TestSeq.ReadNumber numr2,
TestSeq.GetTime _,
TestSeq.HaveNumber numh2,
TestSeq.ReadNumber numr3,
TestSeq.GetTime _,
TestSeq.HaveNumber numh3 ]
| numr1 == numh1 && numr2 == numh2 && numr3 == numh3 -> True
_ -> False
testLookups lookup = do
b <- lookup ("file1" :: BS.ByteString)
TestSeq.haveNumber b
b <- lookup "file1"
TestSeq.haveNumber b
b <- lookup "file2"
TestSeq.haveNumber b
return b
|