@@ -75,6 +75,12 @@ func TestNewTree(t *testing.T) {
7575 t .Errorf ("String() = %v, want \" \" " , "" )
7676 }
7777
78+ tree = interval .NewTreeConcurrent (0 , cmpUintInterval )
79+
80+ if tree .String () != "" {
81+ t .Errorf ("String() = %v, want \" \" " , "" )
82+ }
83+
7884 w := new (strings.Builder )
7985 if err := tree .Fprint (w ); err != nil {
8086 t .Fatal (err )
@@ -155,6 +161,44 @@ func TestNewTree(t *testing.T) {
155161 }
156162}
157163
164+ func TestNewTreeConcurrent (t * testing.T ) {
165+ t .Parallel ()
166+
167+ ivals := genUintIvals (100_000 )
168+
169+ tree1 := interval .NewTree (cmpUintInterval , ivals [0 ])
170+ tree2 := interval .NewTreeConcurrent (1 , cmpUintInterval , ivals [0 ])
171+
172+ if ! equalStatistics (tree1 , tree2 ) {
173+ t .Fatal ("New() differs with NewConcurrent(), statistics differ" )
174+ }
175+
176+ tree1 = interval .NewTree (cmpUintInterval , ivals [:2 ]... )
177+ tree2 = interval .NewTreeConcurrent (2 , cmpUintInterval , ivals [:2 ]... )
178+
179+ if ! equalStatistics (tree1 , tree2 ) {
180+ t .Fatal ("New() differs with NewConcurrent(), statistics differ" )
181+ }
182+
183+ tree1 = interval .NewTree (cmpUintInterval , ivals [:30_000 ]... )
184+ tree2 = interval .NewTreeConcurrent (3 , cmpUintInterval , ivals [:30_000 ]... )
185+
186+ if ! equalStatistics (tree1 , tree2 ) {
187+ t .Log (tree1 .Statistics ())
188+ t .Log (tree2 .Statistics ())
189+ t .Fatal ("New() differs with NewConcurrent(), statistics differ" )
190+ }
191+
192+ tree1 = interval .NewTree (cmpUintInterval , ivals ... )
193+ tree2 = interval .NewTreeConcurrent (4 , cmpUintInterval , ivals ... )
194+
195+ if ! equalStatistics (tree1 , tree2 ) {
196+ t .Log (tree1 .Statistics ())
197+ t .Log (tree2 .Statistics ())
198+ t .Fatal ("New() differs with NewConcurrent(), statistics differ" )
199+ }
200+ }
201+
158202func TestTreeWithDups (t * testing.T ) {
159203 t .Parallel ()
160204
0 commit comments