@@ -153,6 +153,7 @@ fn carrying_mul_add_fallback_i32() {
153
153
154
154
#[ test]
155
155
fn carrying_mul_add_fallback_u128 ( ) {
156
+ assert_eq ! ( fallback_cma:: <u128 >( u128 :: MAX , u128 :: MAX , 0 , 0 ) , ( 1 , u128 :: MAX - 1 ) ) ;
156
157
assert_eq ! ( fallback_cma:: <u128 >( 1 , 1 , 1 , 1 ) , ( 3 , 0 ) ) ;
157
158
assert_eq ! ( fallback_cma:: <u128 >( 0 , 0 , u128 :: MAX , u128 :: MAX ) , ( u128 :: MAX - 1 , 1 ) ) ;
158
159
assert_eq ! (
@@ -178,8 +179,17 @@ fn carrying_mul_add_fallback_u128() {
178
179
179
180
#[ test]
180
181
fn carrying_mul_add_fallback_i128 ( ) {
182
+ assert_eq ! ( fallback_cma:: <i128 >( -1 , -1 , 0 , 0 ) , ( 1 , 0 ) ) ;
181
183
let r = fallback_cma :: < i128 > ( -1 , -1 , -1 , -1 ) ;
182
184
assert_eq ! ( r, ( u128 :: MAX , -1 ) ) ;
183
185
let r = fallback_cma :: < i128 > ( 1 , -1 , 1 , 1 ) ;
184
186
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
+ ) ;
185
195
}
0 commit comments