packages feed

cobot-io-0.1.2.0: test/FASTASpec.hs

{-# LANGUAGE OverloadedStrings #-}

module FASTASpec where

import           Bio.FASTA          (fromFile, toFile)
import           Bio.FASTA.Type     (FastaItem(..), Fasta)
import           Bio.Sequence       (bareSequence)
import           Prelude     hiding (writeFile, readFile)
import           Test.Hspec

correctFasta :: Fasta Char
correctFasta = [FastaItem "3HMX:A|PDBID|CHAIN|SEQUENCE" (bareSequence "IWELKKDVYVVELDWYPDAPGEMVVLTCDTPEEDGITWTLDQSSEVLGSGKTLTIQVKEFGDAGQYTCHKGGEVLSHSLL"), FastaItem "7HMX:A|PDBID|CHAIN|SEQUENCE" (bareSequence "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEVLGSGKTLTIQVKEFGDAGQYTCHKGGEVLSHSLL")]

fastaSpec :: Spec
fastaSpec = describe "Fasta file parser." $ do
    parseFile "test/FASTA/correct.fasta"
    writeFile "test/FASTA/test.fasta"

parseFile :: FilePath -> Spec
parseFile path = describe "fromFile" $ do
    it "correctly parses fasta from file" $ do
        fasta <- fromFile path
        fasta `shouldBe` correctFasta

writeFile :: FilePath -> Spec
writeFile path = describe "writeFile" $ do
    it "correctly write fasta into file" $ do
        toFile correctFasta path
        fasta <- fromFile path
        fasta `shouldBe` correctFasta