1
1
import { bitsetTest } from "./testUtils" ;
2
2
import { SparseTypedFastBitSet } from "./SparseTypedFastBitSet" ;
3
+ import { TypedFastBitSet } from "./TypedFastBitSet" ;
3
4
4
5
describe ( "sparse biggest logic" , ( ) => {
5
6
it ( "Testing sparse addRange/removeRange" , ( ) => {
@@ -25,6 +26,27 @@ describe("sparse biggest logic", () => {
25
26
} ) ;
26
27
} ) ;
27
28
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
+
28
50
bitsetTest ( ( { name, build, arrayEqual } ) => {
29
51
describe ( name , ( ) => {
30
52
it ( "Testing add Range" , ( ) => {
0 commit comments