| 149 | } |
| 150 | |
| 151 | static struct amount_sat |
| 152 | apply_fuzz(u32 fuzz_factor, struct amount_sat val) |
| 153 | { |
| 154 | s32 fuzz_percent; |
| 155 | s64 fuzz; |
| 156 | bool ok; |
| 157 | /* Don't even deal with stupid numbers. */ |
| 158 | if ((s64)val.satoshis < 0) /* Raw: val check */ |
| 159 | return AMOUNT_SAT(0); |
| 160 | |
| 161 | fuzz_percent = pseudorand((fuzz_factor * 2) + 1) - fuzz_factor; |
| 162 | fuzz = (s64)val.satoshis * fuzz_percent / 100; /* Raw: fuzzing */ |
| 163 | if (fuzz > 0) |
| 164 | ok = amount_sat_add(&val, val, amount_sat(fuzz)); |
| 165 | else |
| 166 | ok = amount_sat_sub(&val, val, amount_sat(fuzz * -1)); |
| 167 | |
| 168 | assert(ok); |
| 169 | return val; |
| 170 | } |
| 171 | |
| 172 | static struct amount_sat |
| 173 | apply_policy(struct funder_policy *policy, |
no test coverage detected