| 161 | } |
| 162 | |
| 163 | static struct amount_sat |
| 164 | apply_fuzz(u32 fuzz_factor, struct amount_sat val) |
| 165 | { |
| 166 | s32 fuzz_percent; |
| 167 | s64 fuzz; |
| 168 | bool ok; |
| 169 | /* Don't even deal with stupid numbers. */ |
| 170 | if ((s64)val.satoshis < 0) /* Raw: val check */ |
| 171 | return AMOUNT_SAT(0); |
| 172 | |
| 173 | fuzz_percent = pseudorand((fuzz_factor * 2) + 1) - fuzz_factor; |
| 174 | fuzz = (s64)val.satoshis * fuzz_percent / 100; /* Raw: fuzzing */ |
| 175 | if (fuzz > 0) |
| 176 | ok = amount_sat_add(&val, val, amount_sat(fuzz)); |
| 177 | else |
| 178 | ok = amount_sat_sub(&val, val, amount_sat(fuzz * -1)); |
| 179 | |
| 180 | assert(ok); |
| 181 | return val; |
| 182 | } |
| 183 | |
| 184 | static struct amount_sat |
| 185 | apply_policy(struct funder_policy *policy, |
no test coverage detected