packages feed

text-generic-pretty-1.2.1: test/TestData.hs

{-# LANGUAGE DeriveAnyClass    #-}
{-# LANGUAGE DeriveGeneric     #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}

module TestData where

import Data.String.Conversions (cs)
import Data.Time
import GHC.Base
import GHC.Generics
import Protolude               hiding (K1)
import qualified Data.HashMap.Strict     as HashMap
import qualified Data.IntMap.Strict      as IntMap
import qualified Data.Map.Strict      as Map

import Text.PrettyPrint.GenericPretty

showAndReadTree :: Tree Int -> Either GHC.Base.String (Tree Int)
showAndReadTree = readEither . cs . displayPretty

showAndReadTree1 :: Tree1 Int Text -> Either GHC.Base.String (Tree1 Int Text)
showAndReadTree1 = readEither . cs . displayPretty

showAndReadAnimal1 :: Animal1 -> Either GHC.Base.String Animal1
showAndReadAnimal1 = readEither . cs . displayPretty

data Tree a
  = Leaf a
  | Node (Tree a)
         (Tree a)
  deriving (Eq, Read, Show, Generic, Pretty)

data Tree1 a b
  = Leaf1 a
          b
  | Node1 (Tree1 a b)
          (Tree1 a b)
  deriving (Eq, Read, Show, Generic, Pretty)

tree1 :: Tree Int
tree1 =
  Node
    (Node (Leaf 333333) (Leaf (-555555)))
    (Node
       (Node (Node (Leaf 888888) (Leaf 57575757)) (Leaf (-14141414)))
       (Leaf 7777777))

tree2 :: Tree Int
tree2 = Leaf 7777777

tree3 :: Tree Int
tree3 = Node (Leaf 7777777) (Leaf 5555555)

tree4 :: Tree1 Int Text
tree4 =
  Node1
    (Node1 (Leaf1 333333 "testing agan") (Leaf1 (-555555) "ntest"))
    (Node1
       (Node1
          (Node1 (Leaf1 888888 "again") (Leaf1 57575757 "tisti"))
          (Leaf1 (-14141414) "test"))
       (Leaf1 7777777 "aointhk"))

animal1 :: Animal1
animal1 =
  Animal1 10 "junk animal" "junk animal again" Dog tree1 'C' "test bytestring"

data Animal
  = Dog
  | Cat
  | Horse
  | Elephant
  deriving (Eq, Read, Show, Generic, Pretty, Enum)

data Animal1 = Animal1
  { aType      :: Int
  , aName      :: Text
  , aNameAgain :: Text
  , animal     :: Animal
  , aTree      :: Tree Int
  , aChar      :: Char
  , aBS        :: ByteString
  } deriving (Eq, Read, Show, Generic, Pretty)

hashMapTest :: HashMap.HashMap Int Text
hashMapTest = HashMap.fromList [(1, "10")]

showAndReadHashMap :: HashMap.HashMap Int Text -> Either GHC.Base.String ( HashMap.HashMap Int Text)
showAndReadHashMap = readEither . cs . displayPretty

intMapTest :: IntMap.IntMap Text
intMapTest = IntMap.fromList [(1, "10")]

showAndReadIntMap :: IntMap.IntMap Text -> Either GHC.Base.String ( IntMap.IntMap Text)
showAndReadIntMap = readEither . cs . displayPretty

mapTest :: Map.Map Int Text
mapTest = Map.fromList [(1, "10")]

showAndReadMap :: Map.Map Int Text -> Either GHC.Base.String ( Map.Map Int Text)
showAndReadMap = readEither . cs . displayPretty

utcTimeTest :: UTCTime
utcTimeTest = UTCTime (ModifiedJulianDay 40587) 0

showAndReadUTCTime :: UTCTime -> Either GHC.Base.String UTCTime
showAndReadUTCTime = readEither . cs . displayPretty