ReplaceUmlaut-0.1.5.3: tests/Lib/OneMDfile_test.hs
-----------------------------------------------------------------------------
--
-- Module : a test for HTF framework
-- tests the corresponding Lib.NN.hs program
-- insert {-@ HTF_TESTS @-} for each import
-----------------------------------------------------------------------------
{-# OPTIONS_GHC -F -pgmF htfpp #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE OverloadedStrings #-}
module Lib.OneMDfile_test -- (openMain, htf_thisModuelsTests)
where
import Test.Framework
-- import Uniform.Strings
-- import Uniform.Error
import Lib.OneMDfile
import Lib.ProcTxt
import Lib.ProcWord
import Lib.FileHandling
-- import Uniform.FileIO
import UniformBase
-- show produces the "xx"
test_a1 = assertEqual ("a") $ unwords' . words' $ ("a"::Text)
test_1 = assertEqual ("für") $ procLine2 [] ("fuer"::Text)
-- not clear where the \n disappeared
-- test_2 = assertEqual 6 9
test_2 = assertEqual (" für") $ procLine2 [] (" fuer"::Text)
test_3 = assertEqual ("\tfür") $ procLine2 [] ("\tfuer"::Text)
test_4 = assertEqual (" Einschr\228nkungen gelebt.") $ procLine2 [] (" Einschraenkungen gelebt."::Text)
exampleText1 = unlines' [
"abstract: Was hat einer in der Katastrophe erlebt, der weniger unter den Folgen zu"
, " leiden hatte, als andere? Wir haben meist ausserhalb von Wien am Land ohne wesentlichen"
, " Einschraenkungen gelebt." ] :: Text
resultText1 = unlines' [
"abstract: Was hat einer in der Katastrophe erlebt, der weniger unter den Folgen zu"
, " leiden hatte, als andere? Wir haben meist ausserhalb von Wien am Land ohne wesentlichen"
, " Einschränkungen gelebt." ] :: Text
procLines1 :: [Text] -> Text -> Text
procLines1 e t = unlines' . fmap (procLine2 e) . lines' $ t
test_5 = assertEqual resultText1 $ procLines1 [] exampleText1
-- test_6 = assertEqual "" $ showT exampleText1
test_7 = assertEqual (" Einschr\228nkungen gelebt.\n und\n") $ procLines1 [] (" Einschraenkungen gelebt.\n und"::Text)
test_m1 = do
r <- runErr $ do
let fn1 = makeRelFile "testData/test4.md"
fnerl = makeRelFile "nichtUmlaute" :: Path Rel File
cdir <- currentDir
let fnabs = cdir </> fn1 :: Path Abs File
let fnerlabs = cdir </> fnerl :: Path Abs File
erl2 <- readErlaubt fnerlabs
procMd1 True erl2 fnabs
assertEqual (Right True) r
-- test a simple md file
-- test_5 = do -- fn1 muss existieren
-- -- result fn1 renamed, new fn1 written
-- r <- runErr $
-- do -- necessary to keep the files for tests
-- cont :: Text <- readFile2 fn1
-- fn2 <- changeExtensionBakOrNew True fn1
-- writeFile2 fn2 cont
-- return (toFilePath fn2)
-- assertEqual (Right fn1t) r
-- test_2 = assertEqual 6 9
-- test_2 = assertEqual t2 $ map procWord1 t1
-- t1 = ["fuer", "Moerder", "Aerger", "koennen", "maesten", "FUER", "Oesterreich"] :: [Text]
-- t2 = ["für", "Mörder", "Ärger", "können", "mästen", "FÜR", "Österreich"] :: [Text]
-- test_e1 = assertEqual [True, True] $ map checkErlaubt1 e1
-- e1 = ["Koeffizient", "Poetik"]::[Text]
-- test_e2 = assertEqual True $ isInfixOf' ("poes"::Text) "poesie"
-- test_w1 = assertEqual w1r $ map (procWord2 erlaubt1) w1
-- w1 = ["fuer", "Moerder", "Aerger", "koennen", "maesten", "FUER"
-- , "Koeffizienten", "Poetik", "Poet", "Poesie"] :: [Text]
-- w1r = ["f\252r", "M\246rder", "\196rger", "k\246nnen", "m\228sten",
-- "F\220R", "Koeffizienten", "Poetik", "Poet", "Poesie"]::[Text]
-- w2 = unwords' w1 :: Text
-- w2r = "f\252r M\246rder \196rger k\246nnen m\228sten F\220R Koeffizienten Poetik Poet Poesie"
-- test_idempot = assertEqual w2r (procLine erlaubt1 (procLine erlaubt1 w2))