module Tests.Tools (tests) where
import Bio.Utils.Functions
import Test.Tasty
import Test.Tasty.HUnit
import qualified Data.Matrix as MU
import Text.Printf (printf)
tests :: TestTree
tests = testGroup "Test: Bio.Utils"
[ quantileNormalizationTest
]
quantileNormalizationTest :: TestTree
quantileNormalizationTest = testGroup "quantile normalization"
[ testCase "case 1" $ y1 @=? quantileNormalization x1
, testCase "case 2" $ MU.map (printf "%.2f") y2 @=?
(MU.map (printf "%.2f") (quantileNormalization x2) :: MU.Matrix String)
]
where
x1 :: MU.Matrix Double
x1 = MU.fromLists
[ [2, 4, 4, 5]
, [5, 14, 4, 7]
, [4, 8, 6, 9]
, [3, 8, 5, 8]
, [3, 9, 3, 5] ]
y1 :: MU.Matrix Double
y1 = MU.fromLists
[ [ 3.5, 3.5, 5.25, 4.25]
, [ 8.5, 8.5, 5.25, 5.5]
, [ 6.5, 5.25, 8.5, 8.5]
, [5.25, 5.25, 6.5, 6.5]
, [5.25, 6.5, 3.5, 4.25] ]
x2 :: MU.Matrix Double
x2 = MU.fromLists
[ [5, 4, 3]
, [2, 1, 4]
, [3, 4, 6]
, [4, 2, 8] ]
y2 :: MU.Matrix Double
y2 = MU.fromLists
[ [ 5.666667, 5.166667, 2 ]
, [ 2, 2, 3]
, [3, 5.166667, 4.666667]
, [4.666667, 3, 5.666667] ]