@@ -153,6 +153,7 @@ fn carrying_mul_add_fallback_i32() {
153153
154154#[ test]
155155fn carrying_mul_add_fallback_u128 ( ) {
156+ assert_eq ! ( fallback_cma:: <u128 >( u128 :: MAX , u128 :: MAX , 0 , 0 ) , ( 1 , u128 :: MAX - 1 ) ) ;
156157 assert_eq ! ( fallback_cma:: <u128 >( 1 , 1 , 1 , 1 ) , ( 3 , 0 ) ) ;
157158 assert_eq ! ( fallback_cma:: <u128 >( 0 , 0 , u128 :: MAX , u128 :: MAX ) , ( u128 :: MAX - 1 , 1 ) ) ;
158159 assert_eq ! (
@@ -178,8 +179,17 @@ fn carrying_mul_add_fallback_u128() {
178179
179180#[ test]
180181fn carrying_mul_add_fallback_i128 ( ) {
182+ assert_eq ! ( fallback_cma:: <i128 >( -1 , -1 , 0 , 0 ) , ( 1 , 0 ) ) ;
181183 let r = fallback_cma :: < i128 > ( -1 , -1 , -1 , -1 ) ;
182184 assert_eq ! ( r, ( u128 :: MAX , -1 ) ) ;
183185 let r = fallback_cma :: < i128 > ( 1 , -1 , 1 , 1 ) ;
184186 assert_eq ! ( r, ( 1 , 0 ) ) ;
187+ assert_eq ! (
188+ fallback_cma:: <i128 >( i128 :: MAX , i128 :: MAX , i128 :: MAX , i128 :: MAX ) ,
189+ ( u128 :: MAX , i128 :: MAX / 2 ) ,
190+ ) ;
191+ assert_eq ! (
192+ fallback_cma:: <i128 >( i128 :: MIN , i128 :: MIN , i128 :: MAX , i128 :: MAX ) ,
193+ ( u128 :: MAX - 1 , -( i128 :: MIN / 2 ) ) ,
194+ ) ;
185195}
0 commit comments