@@ -16,12 +16,24 @@ function ordered(U: nsf.Union): boolean {
1616
1717describe ( "union" , ( ) => {
1818 it ( "union creation" , ( ) => {
19+ // From a list of intervals
1920 assert . ok ( ordered ( nsf . union ( [ ] ) ) ) ;
2021 assert . ok ( ordered ( nsf . union ( [ nsf . interval ( - Infinity , Infinity ) ] ) ) ) ;
2122 assert . ok ( ordered ( nsf . union ( [ nsf . interval ( 0 , 0 ) ] ) ) ) ;
2223 assert . ok ( ordered ( nsf . union ( [ nsf . interval ( 1 , 2 ) , nsf . interval ( 4 , 10 ) ] ) ) ) ;
2324 assert . ok ( ordered ( nsf . union ( [ nsf . interval ( 1 , 2 ) , nsf . interval ( - 10 , - 5 ) ] ) ) ) ;
2425 assert . ok ( ordered ( nsf . union ( [ nsf . interval ( 1 , 2 ) , nsf . interval ( - 5 , 5 ) ] ) ) ) ;
26+
27+ // From a list of unions
28+ const a = nsf . union ( [ nsf . interval ( 0 , 0 ) ] ) ;
29+ const b = nsf . union ( [ nsf . interval ( 1 , 2 ) , nsf . interval ( 4 , 10 ) ] ) ;
30+ const c = nsf . union ( [ nsf . interval ( 1 , 2 ) , nsf . interval ( - 10 , - 5 ) ] ) ;
31+ const d = nsf . union ( [ nsf . interval ( 10000 , Infinity ) ] ) ;
32+
33+ assert . ok ( ordered ( nsf . union ( [ a , b , c , d ] ) ) ) ;
34+
35+ // Mix of intervals and unions
36+ assert . ok ( ordered ( nsf . union ( [ a , b , nsf . interval ( 5 , 6 ) , nsf . interval ( - 1000 , - 500 ) ] ) ) ) ;
2537 } ) ;
2638
2739 it ( "union contains" , ( ) => {
0 commit comments