11import { bitsetTest } from "./testUtils" ;
22import { SparseTypedFastBitSet } from "./SparseTypedFastBitSet" ;
3+ import { TypedFastBitSet } from "./TypedFastBitSet" ;
34
45describe ( "sparse biggest logic" , ( ) => {
56 it ( "Testing sparse addRange/removeRange" , ( ) => {
@@ -25,6 +26,27 @@ describe("sparse biggest logic", () => {
2526 } ) ;
2627} ) ;
2728
29+ describe ( "fixed bitset logic" , ( ) => {
30+ it ( "Testing has any in range" , ( ) => {
31+ const b1 = new TypedFastBitSet ( ) ;
32+ b1 . addRange ( 100 , 200 ) ;
33+ b1 . addRange ( 230 , 250 ) ;
34+ expect ( b1 . hasAnyInRange ( 0 , 100 ) ) . toBe ( false ) ; // before
35+ expect ( b1 . hasAnyInRange ( 200 , 204 ) ) . toBe ( false ) ; // endword === firstword
36+ expect ( b1 . hasAnyInRange ( 200 , 229 ) ) . toBe ( false ) ; // gaps
37+ expect ( b1 . hasAnyInRange ( 250 , 300 ) ) . toBe ( false ) ; // after
38+ expect ( b1 . hasAnyInRange ( 99 , 101 ) ) . toBe ( true ) ; // across start 1
39+ expect ( b1 . hasAnyInRange ( 99 , 140 ) ) . toBe ( true ) ; // across start 2
40+ expect ( b1 . hasAnyInRange ( 99 , 201 ) ) . toBe ( true ) ; // across start/end
41+ expect ( b1 . hasAnyInRange ( 100 , 140 ) ) . toBe ( true ) ; // start
42+ expect ( b1 . hasAnyInRange ( 100 , 200 ) ) . toBe ( true ) ; // start past end
43+ expect ( b1 . hasAnyInRange ( 101 , 198 ) ) . toBe ( true ) ; // inside
44+ expect ( b1 . hasAnyInRange ( 120 , 121 ) ) . toBe ( true ) ; // smol
45+ expect ( b1 . hasAnyInRange ( 197 , 200 ) ) . toBe ( true ) ; // end
46+ expect ( b1 . hasAnyInRange ( 199 , 210 ) ) . toBe ( true ) ; // across end
47+ } ) ;
48+ } ) ;
49+
2850bitsetTest ( ( { name, build, arrayEqual } ) => {
2951 describe ( name , ( ) => {
3052 it ( "Testing add Range" , ( ) => {
0 commit comments