packages feed

matrices-0.4.1: tests/test.hs

import Test.Tasty
import qualified Data.Matrix.Generic as MG
import qualified Data.Matrix.Dense.Generic as MD
import qualified Data.Matrix.Sparse.Generic as MS
import qualified Data.Vector.Unboxed as U
import Test.Tasty.HUnit

main :: IO ()
main = defaultMain $ testGroup "Main"
    [ testCase "xx" testEqual ]


testEqual :: Assertion
testEqual = do
    let xs = [0,0,0,0,1,2,3,0,0,0,0,0,4,5,67,0,0,2,40,0,2,0,0,20,0,0,0]
        m1 = MG.fromList (3,9) xs :: MD.Matrix U.Vector Int
        al = filter ((/=0) . snd) $ MD.toList $ MD.imap (\i v -> (i,v)) m1
        m2 = MG.fromList (3,9) xs :: MS.CSR U.Vector Int
        m3 = MS.fromAscAL (3,9) (length al) al :: MS.CSR U.Vector Int

        row1 = MG.toRows m1
        row2 = MG.toRows m2
    
--    assertEqual "x" (MG.flatten m1) (MG.flatten m2)
    assertEqual "x" (MG.flatten m2) (MG.flatten m3)
    assertEqual "x" row1 row2