@@ -76,18 +76,46 @@ defmodule ListTest do
7676
7777 test "first/1" do
7878 assert List . first ( [ ] ) == nil
79- assert List . first ( [ ] , 1 ) == 1
8079 assert List . first ( [ 1 ] ) == 1
8180 assert List . first ( [ 1 , 2 , 3 ] ) == 1
8281 end
8382
83+ test "first/2" do
84+ assert List . first ( [ ] , 1 ) == 1
85+ assert List . first ( [ 2 ] , 1 ) == 2
86+ assert List . first ( [ 1 , 2 , 3 ] , 1 ) == 1
87+ end
88+
89+ test "first!/1" do
90+ assert List . first! ( [ 1 ] ) == 1
91+ assert List . first! ( [ 1 , 2 , 3 ] ) == 1
92+
93+ assert_raise ArgumentError , "attempted to get the first element of an empty list" , fn ->
94+ List . first! ( [ ] )
95+ end
96+ end
97+
8498 test "last/1" do
8599 assert List . last ( [ ] ) == nil
86- assert List . last ( [ ] , 1 ) == 1
87100 assert List . last ( [ 1 ] ) == 1
88101 assert List . last ( [ 1 , 2 , 3 ] ) == 3
89102 end
90103
104+ test "last/2" do
105+ assert List . last ( [ ] , 1 ) == 1
106+ assert List . last ( [ 2 ] , 1 ) == 2
107+ assert List . last ( [ 1 , 2 , 3 ] , 1 ) == 3
108+ end
109+
110+ test "last!/1" do
111+ assert List . last! ( [ 1 ] ) == 1
112+ assert List . last! ( [ 1 , 2 , 3 ] ) == 3
113+
114+ assert_raise ArgumentError , "attempted to get the last element of an empty list" , fn ->
115+ List . last! ( [ ] )
116+ end
117+ end
118+
91119 test "keyfind/4" do
92120 assert List . keyfind ( [ a: 1 , b: 2 ] , :a , 0 ) == { :a , 1 }
93121 assert List . keyfind ( [ a: 1 , b: 2 ] , 2 , 1 ) == { :b , 2 }
0 commit comments