Add some test files to db.hs
This commit is contained in:
parent
e05104b5ba
commit
cc341abc68
34
db.hs
34
db.hs
@ -18,6 +18,8 @@ import System.Console.GetOpt
|
|||||||
import System.Exit (exitWith, ExitCode(..))
|
import System.Exit (exitWith, ExitCode(..))
|
||||||
import System.IO (hPutStrLn, stderr)
|
import System.IO (hPutStrLn, stderr)
|
||||||
|
|
||||||
|
import qualified Data.ByteString as BS
|
||||||
|
|
||||||
import Data.Time
|
import Data.Time
|
||||||
|
|
||||||
|
|
||||||
@ -46,6 +48,12 @@ main = do
|
|||||||
hPutStrLn stderr $ usageInfo "db.hs" argsDescr
|
hPutStrLn stderr $ usageInfo "db.hs" argsDescr
|
||||||
exitWith $ ExitFailure 2
|
exitWith $ ExitFailure 2
|
||||||
|
|
||||||
|
insertFile :: FilePath -> DB FileId
|
||||||
|
insertFile fileTitle = do
|
||||||
|
fileContent <- liftIO $ Just <$> BS.readFile ("testdata/" <> fileTitle)
|
||||||
|
fileModified <- liftIO getCurrentTime
|
||||||
|
insert File{..}
|
||||||
|
|
||||||
fillDb :: DB ()
|
fillDb :: DB ()
|
||||||
fillDb = do
|
fillDb = do
|
||||||
AppSettings{ appUserDefaults = UserDefaultConf{..}, .. } <- getsYesod appSettings
|
AppSettings{ appUserDefaults = UserDefaultConf{..}, .. } <- getsYesod appSettings
|
||||||
@ -233,10 +241,10 @@ fillDb = do
|
|||||||
, courseDescription = Nothing
|
, courseDescription = Nothing
|
||||||
, courseLinkExternal = Nothing
|
, courseLinkExternal = Nothing
|
||||||
, courseShorthand = "ProMo"
|
, courseShorthand = "ProMo"
|
||||||
, courseTerm = TermKey summer2017
|
, courseTerm = TermKey summer2018
|
||||||
, courseSchool = ifi
|
, courseSchool = ifi
|
||||||
, courseCapacity = Just 50
|
, courseCapacity = Just 50
|
||||||
, courseRegisterFrom = Nothing
|
, courseRegisterFrom = Just now
|
||||||
, courseRegisterTo = Nothing
|
, courseRegisterTo = Nothing
|
||||||
, courseDeregisterUntil = Nothing
|
, courseDeregisterUntil = Nothing
|
||||||
, courseRegisterSecret = Nothing
|
, courseRegisterSecret = Nothing
|
||||||
@ -245,6 +253,28 @@ fillDb = do
|
|||||||
insert_ $ CourseEdit jost now pmo
|
insert_ $ CourseEdit jost now pmo
|
||||||
void . insert $ DegreeCourse pmo sdBsc sdInf
|
void . insert $ DegreeCourse pmo sdBsc sdInf
|
||||||
void . insert $ Lecturer jost pmo
|
void . insert $ Lecturer jost pmo
|
||||||
|
sh1 <- insert Sheet
|
||||||
|
{ sheetCourse = pmo
|
||||||
|
, sheetName = "Blatt 1"
|
||||||
|
, sheetDescription = Nothing
|
||||||
|
, sheetType = Normal 6
|
||||||
|
, sheetGrouping = Arbitrary 3
|
||||||
|
, sheetMarkingText = Nothing
|
||||||
|
, sheetVisibleFrom = Just now
|
||||||
|
, sheetActiveFrom = now
|
||||||
|
, sheetActiveTo = (14 * nominalDay) `addUTCTime` now
|
||||||
|
, sheetHintFrom = Nothing
|
||||||
|
, sheetSolutionFrom = Nothing
|
||||||
|
}
|
||||||
|
void . insert $ SheetEdit jost now sh1
|
||||||
|
void . insert $ SheetCorrector jost sh1 (Load (Just True) 0)
|
||||||
|
void . insert $ SheetCorrector gkleen sh1 (Load (Just True) 1)
|
||||||
|
h102 <- insertFile "H10-2.hs"
|
||||||
|
h103 <- insertFile "H10-3.hs"
|
||||||
|
pdf10 <- insertFile "ProMo_Uebung10.pdf"
|
||||||
|
void . insert $ SheetFile sh1 h102 SheetHint
|
||||||
|
void . insert $ SheetFile sh1 h103 SheetSolution
|
||||||
|
void . insert $ SheetFile sh1 pdf10 SheetExercise
|
||||||
-- datenbanksysteme
|
-- datenbanksysteme
|
||||||
dbs <- insert Course
|
dbs <- insert Course
|
||||||
{ courseName = "Datenbanksysteme"
|
{ courseName = "Datenbanksysteme"
|
||||||
|
|||||||
25
testdata/H10-2.hs
vendored
Normal file
25
testdata/H10-2.hs
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{- Übung H10-2 zur Vorlesung "Programmierung und Modellierung"
|
||||||
|
Lehrstuhl für theoretische Informatik, LMU München
|
||||||
|
Steffen Jost, Leah Neukirchen
|
||||||
|
-}
|
||||||
|
|
||||||
|
import Control.Monad
|
||||||
|
|
||||||
|
chainAction1 :: Monad m => a -> [(a -> m a)] -> m a
|
||||||
|
chainAction1 = undefined -- !!! TODO !!!
|
||||||
|
|
||||||
|
chainAction2 :: Monad m => a -> [(a -> m a)] -> m a
|
||||||
|
chainAction2 = undefined -- !!! TODO !!!
|
||||||
|
|
||||||
|
chainAction3 :: Monad m => a-> [(a -> m a)] -> m a
|
||||||
|
chainAction3 = undefined -- !!! TODO !!!
|
||||||
|
|
||||||
|
|
||||||
|
tellOp :: (Show a, Show b) => (a -> b) -> a -> IO b
|
||||||
|
tellOp f x = let fx = f x in do
|
||||||
|
putStrLn $ (show x) ++ " -> " ++ (show fx)
|
||||||
|
return fx
|
||||||
|
|
||||||
|
test1 :: [Int -> IO Int]
|
||||||
|
test1 = map tellOp [(*3),(+1),(`mod` 7),(+5),(*2)]
|
||||||
|
|
||||||
84
testdata/H10-3.hs
vendored
Normal file
84
testdata/H10-3.hs
vendored
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
{- Übung H10-3 zur Vorlesung "Programmierung und Modellierung"
|
||||||
|
Lehrstuhl für theoretische Informatik, LMU München
|
||||||
|
Steffen Jost, Leah Neukirchen
|
||||||
|
|
||||||
|
Bitte nur die Zeilen mit
|
||||||
|
error "TODO" -- TODO: Ihre Aufgabe !!!
|
||||||
|
bearbeiten.
|
||||||
|
(Sie dürfen an diesen Stellen auch beliebig
|
||||||
|
viele neue Zeilen einfügen.)
|
||||||
|
|
||||||
|
Entweder mit ghc kompilieren und ausführen oder
|
||||||
|
einfach in ghci laden und main auswerten.
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
import Control.Monad.Trans.State
|
||||||
|
|
||||||
|
type Wetter = String
|
||||||
|
data Welt = Welt { zeit :: Int, wetter :: Wetter }
|
||||||
|
deriving Show
|
||||||
|
|
||||||
|
main =
|
||||||
|
let startState = Welt { zeit=0, wetter="Regen" }
|
||||||
|
(result,finalState) = runState actions startState
|
||||||
|
in do
|
||||||
|
putStrLn "Zustand Welt bei Start ist: "
|
||||||
|
print startState
|
||||||
|
putStrLn "Zustand Welt bei Ende ist: "
|
||||||
|
print finalState
|
||||||
|
putStrLn "Ergebnis der Aktion ist: "
|
||||||
|
print result
|
||||||
|
|
||||||
|
|
||||||
|
actions :: State Welt [(String,Int)]
|
||||||
|
actions = do
|
||||||
|
tick
|
||||||
|
tick
|
||||||
|
tick
|
||||||
|
tick
|
||||||
|
wetter1 <- swapWetter "Sonne"
|
||||||
|
zeit1 <- gets zeit
|
||||||
|
let r1 = (wetter1, zeit1)
|
||||||
|
tick
|
||||||
|
tick
|
||||||
|
wetter2 <- swapWetter "Sturm"
|
||||||
|
zeit2 <- zeit <$> get
|
||||||
|
let r2 = (wetter2, zeit2)
|
||||||
|
tick
|
||||||
|
return [r1,r2]
|
||||||
|
|
||||||
|
|
||||||
|
--- !!! NUR AB HIER BEARBEITEN !!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
tick :: State Welt ()
|
||||||
|
tick =
|
||||||
|
error "TODO: tick noch nicht implementiert!" -- TODO: Ihre Aufgabe !!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
swapWetter :: Wetter -> State Welt Wetter
|
||||||
|
swapWetter =
|
||||||
|
error "TODO: swapWetter noch nicht implementiert!" -- TODO: Ihre Aufgabe !!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BIN
testdata/ProMo_Uebung10.pdf
vendored
Normal file
BIN
testdata/ProMo_Uebung10.pdf
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user