extra checks for multiply
This commit is contained in:
parent
6487fbde6e
commit
6ab4cfb714
@ -696,6 +696,12 @@ void mult_decn(void){
|
|||||||
uint8_t carry = 0;
|
uint8_t carry = 0;
|
||||||
uint8_t is_neg;
|
uint8_t is_neg;
|
||||||
exp_t new_exponent;
|
exp_t new_exponent;
|
||||||
|
#ifdef EXTRA_CHECKS
|
||||||
|
if (decn_is_nan(&AccDecn) || decn_is_nan(&BDecn)) {
|
||||||
|
set_dec80_NaN(&AccDecn);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
//initialize values
|
//initialize values
|
||||||
set_dec80_zero(&TmpDecn);
|
set_dec80_zero(&TmpDecn);
|
||||||
//normalize
|
//normalize
|
||||||
|
@ -243,6 +243,19 @@ TEST_CASE("multiply"){
|
|||||||
decn_to_str_complete(&AccDecn);
|
decn_to_str_complete(&AccDecn);
|
||||||
CHECK_THAT(Buf, Equals("Error")); //acc*b
|
CHECK_THAT(Buf, Equals("Error")); //acc*b
|
||||||
|
|
||||||
|
//NaN
|
||||||
|
build_dec80("9.99", DEC80_MAX_EXP/2);
|
||||||
|
set_dec80_NaN(&BDecn);
|
||||||
|
mult_decn();
|
||||||
|
decn_to_str_complete(&AccDecn);
|
||||||
|
CHECK_THAT(Buf, Equals("Error")); //acc*b
|
||||||
|
|
||||||
|
//NaN
|
||||||
|
set_dec80_NaN(&AccDecn);
|
||||||
|
build_decn_at(&BDecn, "9.99", DEC80_MAX_EXP/2);
|
||||||
|
mult_decn();
|
||||||
|
decn_to_str_complete(&AccDecn);
|
||||||
|
CHECK_THAT(Buf, Equals("Error")); //acc*b
|
||||||
}
|
}
|
||||||
|
|
||||||
static void div_test(
|
static void div_test(
|
||||||
|
Loading…
Reference in New Issue
Block a user