@@ -207,6 +207,86 @@ let resultOptionOperatorsTests =
207207 |> Expect.hasOkValue ( Some validURL)
208208 ]
209209
210+ let zipTests =
211+ testList " zip tests" [
212+ testCase " Ok Some, Ok Some"
213+ <| fun () ->
214+ let actual = ResultOption.zip ( Ok( Some 1 )) ( Ok( Some 2 ))
215+ Expect.equal actual ( Ok( Some( 1 , 2 ))) " Should be ok some"
216+ testCase " Ok None, Ok None"
217+ <| fun () ->
218+ let actual = ResultOption.zip ( Ok None) ( Ok None)
219+ Expect.equal actual ( Ok None) " Should be ok none"
220+ testCase " Ok Some, Ok None"
221+ <| fun () ->
222+ let actual = ResultOption.zip ( Ok( Some 1 )) ( Ok None)
223+ Expect.equal actual ( Ok None) " Should be ok none"
224+ testCase " Ok None, Ok Some"
225+ <| fun () ->
226+ let actual = ResultOption.zip ( Ok None) ( Ok( Some 1 ))
227+ Expect.equal actual ( Ok None) " Should be ok none"
228+ testCase " Ok Some, Error"
229+ <| fun () ->
230+ let actual = ResultOption.zip ( Ok( Some 1 )) ( Error " Bad" )
231+ Expect.equal actual ( Error " Bad" ) " Should be Error"
232+ testCase " Error, Ok Some"
233+ <| fun () ->
234+ let actual = ResultOption.zip ( Error " Bad" ) ( Ok( Some 1 ))
235+ Expect.equal actual ( Error " Bad" ) " Should be Error"
236+ testCase " Ok None, Error"
237+ <| fun () ->
238+ let actual = ResultOption.zip ( Ok None) ( Error " Bad" )
239+ Expect.equal actual ( Error " Bad" ) " Should be Error"
240+ testCase " Error, Ok None"
241+ <| fun () ->
242+ let actual = ResultOption.zip ( Error " Bad" ) ( Ok None)
243+ Expect.equal actual ( Error " Bad" ) " Should be Error"
244+ testCase " Error, Error"
245+ <| fun () ->
246+ let actual = ResultOption.zip ( Error " Bad1" ) ( Error " Bad2" )
247+ Expect.equal actual ( Error " Bad1" ) " Should be Error"
248+ ]
249+
250+ let zipErrorTests =
251+ testList " zipError tests" [
252+ testCase " Ok Some, Ok Some"
253+ <| fun () ->
254+ let actual = ResultOption.zipError ( Ok( Some 1 )) ( Ok( Some 2 ))
255+ Expect.equal actual ( Ok( Some 1 )) " Should be ok some"
256+ testCase " Ok None, Ok None"
257+ <| fun () ->
258+ let actual = ResultOption.zipError ( Ok None) ( Ok None)
259+ Expect.equal actual ( Ok None) " Should be ok none"
260+ testCase " Ok Some, Ok None"
261+ <| fun () ->
262+ let actual = ResultOption.zipError ( Ok( Some 1 )) ( Ok None)
263+ Expect.equal actual ( Ok( Some 1 )) " Should be ok some"
264+ testCase " Ok None, Ok Some"
265+ <| fun () ->
266+ let actual = ResultOption.zipError ( Ok None) ( Ok( Some 1 ))
267+ Expect.equal actual ( Ok None) " Should be ok none"
268+ testCase " Ok Some, Error"
269+ <| fun () ->
270+ let actual = ResultOption.zipError ( Ok( Some 1 )) ( Error " Bad" )
271+ Expect.equal actual ( Ok( Some 1 )) " Should be ok some"
272+ testCase " Error, Ok Some"
273+ <| fun () ->
274+ let actual = ResultOption.zipError ( Error " Bad" ) ( Ok( Some 1 ))
275+ Expect.equal actual ( Ok( Some 1 )) " Should be ok some"
276+ testCase " Ok None, Error"
277+ <| fun () ->
278+ let actual = ResultOption.zipError ( Ok None) ( Error " Bad" )
279+ Expect.equal actual ( Ok None) " Should be ok none"
280+ testCase " Error, Ok None"
281+ <| fun () ->
282+ let actual = ResultOption.zipError ( Error " Bad" ) ( Ok None)
283+ Expect.equal actual ( Ok None) " Should be ok none"
284+ testCase " Error, Error"
285+ <| fun () ->
286+ let actual = ResultOption.zipError ( Error " Bad1" ) ( Error " Bad2" )
287+ Expect.equal actual ( Error( " Bad1" , " Bad2" )) " Should be Error tuple"
288+ ]
289+
210290let allTests =
211291 testList " Result Option Tests" [
212292 map2Tests
@@ -217,4 +297,6 @@ let allTests =
217297 ignoreTests
218298 resultOptionCETests
219299 resultOptionOperatorsTests
300+ zipTests
301+ zipErrorTests
220302 ]
0 commit comments