diff --git a/lib/bill-math.js b/lib/bill-math.js index 589573e5..fa0b8db8 100644 --- a/lib/bill-math.js +++ b/lib/bill-math.js @@ -1,6 +1,7 @@ const _ = require('lodash/fp') const sumService = require('@haensl/subset-sum') +const BN = require('./bn') const logger = require('./logger') const cc = require('./coin-change') @@ -152,9 +153,9 @@ const solutionToOriginalUnits = (solution, units) => { function makeChange(outCassettes, amount) { const ss_solution = getSolution_old(outCassettes, amount, BILL_LIST_MODES.VALUE_ROUND_ROBIN) - const cc_solution = cc.solve(cc.model(outCassettes), amount.toNumber()) + const cc_solution = getSolution(outCassettes, amount) - if (!!ss_solution === !!cc_solution) { + if (!!ss_solution !== !!cc_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) }