@@ -3236,3 +3236,77 @@ func BenchmarkArrayUnionThreshold(b *testing.B) {
32363236 })
32373237 }
32383238}
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