@@ -42,6 +42,19 @@ func TestResultTryIf(t *testing.T) {
4242 is .Equal (Try (3 , fmt .Errorf ("%w: %T" , ErrNoSuchElement , 3 )), TryHave (3 , false ))
4343}
4444
45+ func TestResultTryAt (t * testing.T ) {
46+ is := assert .New (t )
47+
48+ slice := []int {10 , 20 , 30 }
49+ array := [3 ]int {40 , 50 , 60 }
50+
51+ is .Equal (Ok (20 ), TryAt (slice , 1 ))
52+ is .Equal (Ok (60 ), TryAt (array [:], 2 ))
53+ is .ErrorIs (TryAt (slice , - 1 ).Err (), ErrNoSuchElement )
54+ is .ErrorIs (TryAt (slice , 3 ).Err (), ErrNoSuchElement )
55+ is .ErrorIs (TryAt ([]int {}, 0 ).Err (), ErrNoSuchElement )
56+ }
57+
4558func TestResultTryCast (t * testing.T ) {
4659 is := assert .New (t )
4760
@@ -95,6 +108,22 @@ func TestResultMustOk(t *testing.T) {
95108 is .Equal (42 , Ok (42 ).Yield ())
96109}
97110
111+ func TestResultMustAt (t * testing.T ) {
112+ is := assert .New (t )
113+
114+ slice := []int {10 , 20 , 30 }
115+ array := [3 ]int {40 , 50 , 60 }
116+
117+ is .Equal (20 , MustAt (slice , 1 ))
118+ is .Equal (60 , MustAt (array [:], 2 ))
119+ is .Panics (func () {
120+ MustAt (slice , - 1 )
121+ })
122+ is .Panics (func () {
123+ MustAt (slice , 3 )
124+ })
125+ }
126+
98127func TestResultOr (t * testing.T ) {
99128 is := assert .New (t )
100129
0 commit comments