@@ -825,25 +825,26 @@ func inclusion(t *testing.T, index, size uint64) Nodes {
825825func TestFindSubtrees (t * testing.T ) {
826826 for _ , tc := range []struct {
827827 start , end uint64
828- want []Subtree
828+ wantLeft Subtree
829+ wantRight Subtree
829830 wantErr bool
830831 }{
831- // Already-valid subtrees are returned as-is.
832832 // Single entry subtrees:
833- {start : 0 , end : 1 , want : [] Subtree {{ Start : 0 , End : 1 }, {Start : 1 , End : 1 } }},
834- {start : 3 , end : 4 , want : [] Subtree {{ Start : 3 , End : 4 }, {Start : 4 , End : 4 } }},
833+ {start : 0 , end : 1 , wantLeft : Subtree {Start : 0 , End : 1 }, wantRight : Subtree {Start : 1 , End : 1 }},
834+ {start : 3 , end : 4 , wantLeft : Subtree {Start : 3 , End : 4 }, wantRight : Subtree {Start : 4 , End : 4 }},
835835 // Perfectly aligned subtrees:
836- {start : 4 , end : 6 , want : [] Subtree {{ Start : 4 , End : 5 }, {Start : 5 , End : 6 } }},
837- {start : 16 , end : 32 , want : [] Subtree {{ Start : 16 , End : 24 }, {Start : 24 , End : 32 } }},
836+ {start : 4 , end : 6 , wantLeft : Subtree {Start : 4 , End : 5 }, wantRight : Subtree {Start : 5 , End : 6 }},
837+ {start : 16 , end : 32 , wantLeft : Subtree {Start : 16 , End : 24 }, wantRight : Subtree {Start : 24 , End : 32 }},
838838 // Non-perfect trees are split into two:
839- {start : 5 , end : 13 , want : []Subtree {{Start : 4 , End : 8 }, {Start : 8 , End : 13 }}},
840- {start : 7 , end : 9 , want : []Subtree {{Start : 7 , End : 8 }, {Start : 8 , End : 9 }}},
839+ {start : 5 , end : 13 , wantLeft : Subtree {Start : 4 , End : 8 }, wantRight : Subtree {Start : 8 , End : 13 }},
840+ {start : 7 , end : 9 , wantLeft : Subtree {Start : 7 , End : 8 }, wantRight : Subtree {Start : 8 , End : 9 }},
841+ // Empty subtrees.
842+ {start : 5 , end : 5 , wantLeft : Subtree {Start : 5 , End : 5 }, wantRight : Subtree {Start : 5 , End : 5 }},
841843 // Invalid inputs:
842- {start : 5 , end : 5 , want : []Subtree {{Start : 5 , End : 5 }, {Start : 5 , End : 5 }}},
843844 {start : 6 , end : 5 , wantErr : true },
844845 } {
845846 t .Run (fmt .Sprintf ("%d:%d" , tc .start , tc .end ), func (t * testing.T ) {
846- got , err := FindSubtrees (tc .start , tc .end )
847+ gotLeft , gotRight , err := FindSubtrees (tc .start , tc .end )
847848 if tc .wantErr {
848849 if err == nil {
849850 t .Fatal ("expected error, got nil" )
@@ -853,8 +854,11 @@ func TestFindSubtrees(t *testing.T) {
853854 if err != nil {
854855 t .Fatalf ("FindSubtrees: %v" , err )
855856 }
856- if diff := cmp .Diff (tc .want , got ); diff != "" {
857- t .Errorf ("FindSubtrees mismatch (-want +got):\n %s" , diff )
857+ if diff := cmp .Diff (tc .wantLeft , gotLeft ); diff != "" {
858+ t .Errorf ("FindSubtrees left mismatch (-want +got):\n %s" , diff )
859+ }
860+ if diff := cmp .Diff (tc .wantRight , gotRight ); diff != "" {
861+ t .Errorf ("FindSubtrees right mismatch (-want +got):\n %s" , diff )
858862 }
859863 })
860864 }
0 commit comments