1module Test.Array (tests) where
7import ElmTest.Assertion (..)
8import ElmTest.Test (..)
12 let creationTests = suite "Creation"
13 [ test "empty" <| assertEqual Array.empty (Array.fromList [])
14 , test "initialize" <| assertEqual (Array.initialize 4 id) (Array.fromList [0,1,2,3])
15 , test "initialize 2" <| assertEqual (Array.initialize 4 (\n -> n*n)) (Array.fromList [0,1,4,9])
16 , test "initialize 3" <| assertEqual (Array.initialize 4 (always 0)) (Array.fromList [0,0,0,0])
17 , test "initialize Empty" <| assertEqual (Array.initialize 0 id) Array.empty
18 , test "initialize 4" <| assertEqual (Array.initialize 2 (always 0)) (Array.fromList [0,0])
19 , test "repeat" <| assertEqual (Array.repeat 5 40) (Array.fromList [40,40,40,40,40])
20 , test "repeat 2" <| assertEqual (Array.repeat 5 0) (Array.fromList [0,0,0,0,0])
21 , test "repeat 3" <| assertEqual (Array.repeat 3 "cat") (Array.fromList ["cat","cat","cat"])
22 , test "fromList" <| assertEqual (Array.fromList []) Array.empty
24 basicsTests = suite "Basics"
25 [ test "length" <| assertEqual (Array.length (Array.fromList [1,2,3])) 3
26 , test "length - Long" <| assertEqual (Array.length (Array.repeat 10000 0)) 10000
27 , test "push" <| assertEqual (Array.push 3 (Array.fromList [1,2])) (Array.fromList [1,2,3])
28 , test "append" <| assertEqual (Array.toList <| Array.append (Array.repeat 2 42) (Array.repeat 3 81)) ([42,42,81,81,81])
30 getAndSetTests = suite "Get and Set"
31 [ test "get" <| assertEqual (Array.get 1 (Array.fromList [3,2,1])) (Just 2)
32 , test "get 2" <| assertEqual (Array.get 5 (Array.fromList [3,2,1])) Nothing
33 , test "get 3" <| assertEqual (Array.get -1 (Array.fromList [3,2,1])) Nothing
34 , test "getOrElse 1" <| assertEqual (Array.getOrElse 0 2 (Array.fromList [3,2,1])) 1
35 , test "getOrElse 2" <| assertEqual (Array.getOrElse 0 5 (Array.fromList [3,2,1])) 0
36 , test "getOrFail" <| assertEqual (Array.getOrFail 2 (Array.fromList [3,2,1])) 1
37 , test "set" <| assertEqual (Array.set 1 7 (Array.fromList [1,2,3])) (Array.fromList [1,7,3])
39 takingArraysApartTests = suite "Taking Arrays Apart"
40 [ test "toList" <| assertEqual (Array.toList (Array.fromList [3,5,8])) [3,5,8]
41 , test "toIndexedList" <| assertEqual (Array.toIndexedList (Array.fromList ["cat","dog"])) [(0,"cat"), (1,"dog")]
42 , test "slice" <| assertEqual (Array.slice 1 2 (Array.fromList [0,1,2,3,4])) (Array.fromList [1,2])
43 , test "slice 2" <| assertEqual (Array.slice 1 -2 (Array.fromList [0,1,2,3,4])) (Array.fromList [1,2,3])
44 , test "slice 3" <| assertEqual (Array.slice -3 -2 (Array.fromList [0,1,2,3,4])) (Array.fromList [2,3])
46 mappingAndFoldingTests = suite "Mapping and Folding"
47 [ test "map" <| assertEqual (Array.map sqrt (Array.fromList [1,4,9])) (Array.fromList [1,2,3])
48 , test "indexedMap" <| assertEqual (Array.indexedMap (*) (Array.fromList [5,5,5])) (Array.fromList [0,5,10])
49 , test "foldl" <| assertEqual (Array.foldl (::) [] (Array.fromList [1,2,3])) [3,2,1]
50 , test "foldr" <| assertEqual (Array.foldr (+) 0 (Array.repeat 3 5)) 15
51 , test "foldr 2" <| assertEqual (Array.foldr (::) [] (Array.fromList [1,2,3])) [1,2,3]
52 , test "filter" <| assertEqual (Array.filter (\x -> x `mod` 2 == 0) (Array.fromList [1..6])) (Array.fromList [2,4,6])
54 nativeTests = suite "Conversion to JS Arrays"
55 [ test "jsArrays" <| assertEqual (Array.fromList [1..1100]) (Native.Array.fromJSArray (Native.Array.toJSArray (Array.fromList [1..1100])))
58 suite "Array Tests" [creationTests, basicsTests, getAndSetTests, takingArraysApartTests, mappingAndFoldingTests, nativeTests]
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list