@@ -19,6 +19,47 @@ type resulter[OK, Err any] interface {
1919 Err () * Err
2020}
2121
22+ func TestResultOKOrErr (t * testing.T ) {
23+ r1 := OK [Result [string , string , struct {}]]("hello" )
24+ if ok := r1 .OK (); ok == nil {
25+ t .Errorf ("OK(): %v, expected non-nil OK" , ok )
26+ }
27+ if err := r1 .Err (); err != nil {
28+ t .Errorf ("Err(): %v, expected nil Err" , err )
29+ }
30+
31+ r2 := Err [Result [bool , struct {}, bool ]](true )
32+ if ok := r2 .OK (); ok != nil {
33+ t .Errorf ("OK(): %v, expected nil OK" , ok )
34+ }
35+ if err := r2 .Err (); err == nil {
36+ t .Errorf ("Err(): %v, expected non-nil Err" , err )
37+ }
38+ }
39+
40+ func TestResultResult (t * testing.T ) {
41+ ok , err , isErr := OK [Result [string , string , int ]]("hello" ).Result ()
42+ if got , want := ok , "hello" ; got != want {
43+ t .Errorf ("Result(): ok = %v; expected %v" , got , want )
44+ }
45+ if got , want := err , 0 ; got != want {
46+ t .Errorf ("Result(): err = %v; expected %v" , got , want )
47+ }
48+ if got , want := isErr , false ; got != want {
49+ t .Errorf ("Result(): isErr = %v; expected %v" , got , want )
50+ }
51+ ok , err , isErr = Err [Result [string , string , int ]](42 ).Result ()
52+ if got , want := ok , "" ; got != want {
53+ t .Errorf ("Result(): ok = %v; expected %v" , got , want )
54+ }
55+ if got , want := err , 42 ; got != want {
56+ t .Errorf ("Result(): err = %v; expected %v" , got , want )
57+ }
58+ if got , want := isErr , true ; got != want {
59+ t .Errorf ("Result(): isErr = %v; expected %v" , got , want )
60+ }
61+ }
62+
2263func TestResultLayout (t * testing.T ) {
2364 // 8 on 64-bit, 4 on 32-bit
2465 ptrSize := unsafe .Sizeof (uintptr (0 ))
@@ -70,24 +111,6 @@ func TestResultLayout(t *testing.T) {
70111 }
71112}
72113
73- func TestResultOKOrErr (t * testing.T ) {
74- r1 := OK [Result [string , string , struct {}]]("hello" )
75- if ok := r1 .OK (); ok == nil {
76- t .Errorf ("OK(): %v, expected non-nil OK" , ok )
77- }
78- if err := r1 .Err (); err != nil {
79- t .Errorf ("Err(): %v, expected nil Err" , err )
80- }
81-
82- r2 := Err [Result [bool , struct {}, bool ]](true )
83- if ok := r2 .OK (); ok != nil {
84- t .Errorf ("OK(): %v, expected nil OK" , ok )
85- }
86- if err := r2 .Err (); err == nil {
87- t .Errorf ("Err(): %v, expected non-nil Err" , err )
88- }
89- }
90-
91114func TestAltResult1 (t * testing.T ) {
92115 type alt1 [Shape , OK , Err any ] struct {
93116 _ [0 ]OK
0 commit comments