fix: ensure coin-change is valid before comparing with subset-sum
This commit is contained in:
parent
8abbc792f6
commit
91c4ca4dce
1 changed files with 4 additions and 4 deletions
|
|
@ -160,13 +160,13 @@ function makeChange(outCassettes, amount) {
|
||||||
const ss_solution = getSolution_old(outCassettes, amount, BILL_LIST_MODES.VALUE_ROUND_ROBIN)
|
const ss_solution = getSolution_old(outCassettes, amount, BILL_LIST_MODES.VALUE_ROUND_ROBIN)
|
||||||
const cc_solution = getSolution(outCassettes, amount)
|
const cc_solution = getSolution(outCassettes, amount)
|
||||||
|
|
||||||
if (!!ss_solution !== !!cc_solution) {
|
if (!cc.check(cc_solution, amount.toNumber())) {
|
||||||
logger.error(new Error(`subset-sum and coin-change don't agree on solvability -- subset-sum:${!!ss_solution} coin-change:${!!cc_solution}`))
|
logger.error(new Error("coin-change provided a bad solution"))
|
||||||
return solutionToOriginalUnits(ss_solution, outCassettes)
|
return solutionToOriginalUnits(ss_solution, outCassettes)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cc.check(cc_solution, amount.toNumber())) {
|
if (!!ss_solution !== !!cc_solution) {
|
||||||
logger.error(new Error("coin-change provided a bad solution"))
|
logger.error(new Error(`subset-sum and coin-change don't agree on solvability -- subset-sum:${!!ss_solution} coin-change:${!!cc_solution}`))
|
||||||
return solutionToOriginalUnits(ss_solution, outCassettes)
|
return solutionToOriginalUnits(ss_solution, outCassettes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue