Add test for signed division in on-chain programs

This commit is contained in:
Dmitri Makarov 2021-06-20 19:02:29 -07:00 committed by Dmitri Makarov
parent 7cefb70fcf
commit 28b2ff3733
1 changed files with 8 additions and 0 deletions

View File

@ -12,8 +12,16 @@ extern uint64_t entrypoint(const uint8_t *input) {
if (!sol_deserialize(input, &params, SOL_ARRAY_SIZE(ka))) {
return ERROR_INVALID_ARGUMENT;
}
/* test float conversion to int compiles and works */
uint32_t *data = (uint32_t *)(params.ka[0].data);
uint32_t new_data = *data + 1;
*data += 1.5;
sol_assert(*data == new_data);
/* test signed division works for FP values */
double value = (double)new_data + 1.0;
value /= -2.0;
sol_assert(value < 0.0);
return SUCCESS;
}