@@ -3236,3 +3236,77 @@ func BenchmarkArrayUnionThreshold(b *testing.B) {
3236
3236
})
3237
3237
}
3238
3238
}
3239
+
3240
+ func TestIssue467CaseSmall (t * testing.T ) {
3241
+ b := New ()
3242
+ b .AddRange (0 , 16385 )
3243
+ b .AddRange (16385 , 20482 )
3244
+ b .AddRange (20482 , 27862 )
3245
+ b .AddRange (27862 , 44247 )
3246
+ b .AddRange (45576 , 61961 )
3247
+ b .AddRange (61961 , 66058 )
3248
+ b .AddRange (66058 , 67247 )
3249
+ b .AddRange (68819 , 73028 )
3250
+ b .AddRange (73028 , 89413 )
3251
+ b .AddRange (92266 , 108651 )
3252
+ b .AddRange (108651 , 113772 )
3253
+ b .AddRange (113772 , 118757 )
3254
+ b .AddRange (118757 , 132098 )
3255
+ b .RunOptimize ()
3256
+ require .NoError (t , b .Validate ())
3257
+ }
3258
+
3259
+ func TestIssue467CaseLarge (t * testing.T ) {
3260
+ b := New ()
3261
+ b .RemoveRange (0 , 16385 )
3262
+ b .RemoveRange (16385 , 20482 )
3263
+ b .RemoveRange (20482 , 27862 )
3264
+ b .AddRange (0 , 16385 )
3265
+ b .AddRange (16385 , 20482 )
3266
+ b .AddRange (20482 , 27862 )
3267
+ b .RemoveRange (27862 , 44247 )
3268
+ b .RemoveRange (44247 , 45576 )
3269
+ b .RemoveRange (45576 , 61961 )
3270
+ b .RemoveRange (61961 , 66058 )
3271
+ b .RemoveRange (66058 , 67247 )
3272
+ b .AddRange (27862 , 44247 )
3273
+ b .AddRange (45576 , 61961 )
3274
+ b .AddRange (44247 , 45576 )
3275
+ b .AddRange (61961 , 66058 )
3276
+ b .AddRange (66058 , 67247 )
3277
+ b .RemoveRange (67247 , 68819 )
3278
+ b .RemoveRange (68819 , 73028 )
3279
+ b .RemoveRange (73028 , 89413 )
3280
+ b .RemoveRange (89413 , 92266 )
3281
+ b .RemoveRange (92266 , 108651 )
3282
+ b .RemoveRange (108651 , 113772 )
3283
+ b .RemoveRange (113772 , 118757 )
3284
+ b .AddRange (68819 , 73028 )
3285
+ b .AddRange (73028 , 89413 )
3286
+ b .AddRange (92266 , 108651 )
3287
+ b .AddRange (89413 , 92266 )
3288
+ b .AddRange (108651 , 113772 )
3289
+ b .AddRange (113772 , 118757 )
3290
+ b .RemoveRange (118757 , 132098 )
3291
+ b .AddRange (118757 , 132098 )
3292
+ b .RemoveRange (132098 , 137544 )
3293
+ b .AddRange (132098 , 137544 )
3294
+ b .RemoveRange (137544 , 153929 )
3295
+ b .RemoveRange (153929 , 155151 )
3296
+ b .RemoveRange (155151 , 162078 )
3297
+ b .RemoveRange (162078 , 167119 )
3298
+ b .RemoveRange (167119 , 181012 )
3299
+ b .RemoveRange (181012 , 197397 )
3300
+ b .RemoveRange (197397 , 201244 )
3301
+ b .RemoveRange (201244 , 217629 )
3302
+ b .RemoveRange (217629 , 222750 )
3303
+ b .RemoveRange (222750 , 227708 )
3304
+ b .RemoveRange (227708 , 235777 )
3305
+ b .RemoveRange (235777 , 252162 )
3306
+ b .RemoveRange (252162 , 256259 )
3307
+ b .AddRange (252162 , 256259 )
3308
+ b .AddRange (227708 , 235777 )
3309
+ b .AddRange (235777 , 252162 )
3310
+ b .RunOptimize ()
3311
+ require .NoError (t , b .Validate ())
3312
+ }
0 commit comments