module Tests.ChIPSeq (tests) where
import Bio.Data.Bed
import Bio.ChIPSeq
import Data.Conduit
import qualified Data.Conduit.List as CL
import Test.Tasty
import Test.Tasty.HUnit
import qualified Data.Vector as V
import Text.Printf
peaks :: IO [BED3]
peaks = readBed' "tests/data/peaks.bed"
tags :: Source IO BED
tags = readBed "tests/data/example.bed"
tests :: TestTree
tests = testGroup "Test: Bio.ChIPSeq"
[ testCase "rpkm" testRPKM
]
testRPKM :: Assertion
testRPKM = do regions <- peaks
r1 <- tags $$ rpkmBed regions
r2 <- CL.sourceList regions $= rpkmBam "tests/data/example.bam" $$ CL.consume
let r1' = map (printf "%0.6f") . V.toList $ r1 :: [String]
r2' = map (printf "%0.6f") r2
r1' @=? r2'