@@ -1,12 +1,58 @@
1module Test.Main where
1module Test.Main where
3−import Prelude
3+import Prelude (Unit, bind, pure, discard, map, negate, ($), (<$>), (=<<), (<>))
4−
4+import Data.ArrayBuffer.Types (ArrayBuffer,Uint8Array)
5+import Data.ArrayBuffer.Typed as AT
6+import Data.UInt as UInt
5import Effect (Effect)
7import Effect (Effect)
6−import Effect.Class.Console (log)
7−import Test.Assert
8+import Test.Assert (assertEqual')
9+import Data.ArrayBuffer.Builder
11+asBytes :: ArrayBuffer -> Effect (Array Int)
13+ x' :: Uint8Array <- AT.whole x
14+ map UInt.toInt <$> AT.toArray x'
16+putTest :: String -> Array Int -> PutM Effect Unit -> Effect Unit
17+putTest label expected put = do
18+ actual <- asBytes =<< execPut put
19+ assertEqual' label {actual,expected}
21+buildTest :: String -> Array Int -> Effect Builder -> Effect Unit
22+buildTest label expected bldr = do
23+ actual <- asBytes =<< execBuilder =<< bldr
24+ assertEqual' label {actual,expected}
9main :: Effect Unit
26main :: Effect Unit
11− log "🍝"
28+ putTest "Test 0" [6,7,8] $ do
12− log "You should add some tests."
29+ putInt8 6
33+ putTest "Test 1" [255,254] $ do
36+ putTest "Test 3" [3,0,0,0] $ do
39+ buildTest "Test 4" [1,2,3,4] $ do
44+ pure $ singleton b1 <> singleton b2 <> singleton b3 <> singleton b4
46+ buildTest "Test 5" [1,2,3,4] $ do
51+ pure $ singleton b1 <>> singleton b2 <>> singleton b3 <>> singleton b4
53+ buildTest "Test 6" [1,2,3,4] $ do
58+ pure $ singleton b1 <> (singleton b2 <> singleton b3) <> singleton b4