@@ -25,6 +25,25 @@ def test_err_initialization():
2525 assert result1 == result2
2626
2727
28+ def test_result_error_handling ():
29+ """Test detailed error handling and propagation."""
30+ result = Result .as_Err ("Failure" )
31+
32+ # Error message check
33+ assert result .Err_msg_contains ("Failure" )
34+
35+ # Add message
36+ result .add_Err_msg ("Another failure" )
37+ assert result .Err_msg_contains ("Another failure" )
38+
39+ # Expect error
40+ with pytest .raises (ResultErr ):
41+ result .expect ()
42+
43+ with pytest .raises (ResultErr ):
44+ result .raises ()
45+
46+
2847# Test for adding Ok values
2948def test_ok_addition ():
3049 result1 = Ok (5 )
@@ -288,3 +307,27 @@ def test_err_initialization_with_large_dict():
288307 result = Err (large_dict )
289308 assert result .is_Err
290309 assert result .unwrap ().msg == [str (large_dict )]
310+
311+
312+ def test_operator_overloading ():
313+ result1 = Ok (10 )
314+ result2 = Ok (5 )
315+
316+ # Arithmetic
317+ result_sum = result1 + result2
318+ assert result_sum == 15
319+ assert result_sum == Ok (15 )
320+ assert result_sum .unwrap () == 15
321+ assert result_sum .expect () == 15
322+
323+ result_diff = result1 - result2
324+ assert result_diff == 5
325+ assert result_diff == Ok (5 )
326+ assert result_diff .unwrap () == 5
327+ assert result_diff .expect () == 5
328+
329+ # Comparison
330+ assert result1 > result2
331+ assert result1 >= result2
332+ assert result1 != result2
333+ assert result1 == Ok (10 )
0 commit comments