@@ -156,6 +156,36 @@ describe("arithmetic operators have the inclusion property", () => {
156156 } ) ;
157157} ) ;
158158
159+ describe ( "empty union operand" , ( ) => {
160+ it ( "add" , ( ) => {
161+ assert . deepStrictEqual ( nsf . EMPTY , nsf . add ( nsf . single ( 1 , 2 ) , nsf . EMPTY ) ) ;
162+ assert . deepStrictEqual ( nsf . EMPTY , nsf . add ( nsf . FULL , nsf . EMPTY ) ) ;
163+ assert . deepStrictEqual ( nsf . EMPTY , nsf . add ( nsf . EMPTY , nsf . single ( 1 , 2 ) ) ) ;
164+ assert . deepStrictEqual ( nsf . EMPTY , nsf . add ( nsf . EMPTY , nsf . FULL ) ) ;
165+ } ) ;
166+
167+ it ( "sub" , ( ) => {
168+ assert . deepStrictEqual ( nsf . EMPTY , nsf . sub ( nsf . single ( 1 , 2 ) , nsf . EMPTY ) ) ;
169+ assert . deepStrictEqual ( nsf . EMPTY , nsf . sub ( nsf . FULL , nsf . EMPTY ) ) ;
170+ assert . deepStrictEqual ( nsf . EMPTY , nsf . sub ( nsf . EMPTY , nsf . single ( 1 , 2 ) ) ) ;
171+ assert . deepStrictEqual ( nsf . EMPTY , nsf . sub ( nsf . EMPTY , nsf . FULL ) ) ;
172+ } ) ;
173+
174+ it ( "mul" , ( ) => {
175+ assert . deepStrictEqual ( nsf . EMPTY , nsf . mul ( nsf . single ( 1 , 2 ) , nsf . EMPTY ) ) ;
176+ assert . deepStrictEqual ( nsf . EMPTY , nsf . mul ( nsf . FULL , nsf . EMPTY ) ) ;
177+ assert . deepStrictEqual ( nsf . EMPTY , nsf . mul ( nsf . EMPTY , nsf . single ( 1 , 2 ) ) ) ;
178+ assert . deepStrictEqual ( nsf . EMPTY , nsf . mul ( nsf . EMPTY , nsf . FULL ) ) ;
179+ } ) ;
180+
181+ it ( "div" , ( ) => {
182+ assert . deepStrictEqual ( nsf . EMPTY , nsf . div ( nsf . single ( 1 , 2 ) , nsf . EMPTY ) ) ;
183+ assert . deepStrictEqual ( nsf . EMPTY , nsf . div ( nsf . FULL , nsf . EMPTY ) ) ;
184+ assert . deepStrictEqual ( nsf . EMPTY , nsf . div ( nsf . EMPTY , nsf . single ( 1 , 2 ) ) ) ;
185+ assert . deepStrictEqual ( nsf . EMPTY , nsf . div ( nsf . EMPTY , nsf . FULL ) ) ;
186+ } ) ;
187+ } ) ;
188+
159189describe ( "overflow tests" , ( ) => {
160190 const M = Number . MAX_VALUE ;
161191 it ( "add" , ( ) => {
0 commit comments