{-# language TypeApplications #-} module Main (main) where import Data.List import RingBuffers.Lifted as R import Test.HUnit import qualified GHC.Exts as Exts main :: IO Counts main = do runTestTT $ test [ testExtend ] testExtend :: Test testExtend = TestCase $ do let len = 40 rb <- R.new @Int len let firstArr = Exts.fromList [0..4] let secondArr = Exts.fromList [0..50] R.extend firstArr rb R.extend secondArr rb checkLength rb len let expectedItems = [] ++ Exts.toList firstArr ++ take (len - length firstArr) (Exts.toList secondArr) items <- R.toList rb putStrLn "" print items --if expectedItems == items -- then pure () -- else pure () --fail "lol" --checkItems rb expectedItems -- withItems rb $ \items -> do checkLength :: RingBuffer a -> Int -> Assertion checkLength rb expected = do len <- R.filledLength rb let msg = "Expected length " ++ show expected assertEqual msg expected len checkItems :: (Eq a, Show a) => RingBuffer a -> [a] -> Assertion checkItems rb expected = do items <- R.toList rb print items let msg = "Expected items " ++ show expected assertEqual msg expected [] --items