Cash Register Project Last Test

Tell us what’s happening:
I keep failing the last test on the cash register project (where status should read “CLOSED” and change should be [[“PENNY”, 0.5], [“NICKEL”, 0], [“DIME”, 0], [“QUARTER”, 0], [“ONE”, 0], [“FIVE”, 0], [“TEN”, 0], [“TWENTY”, 0], [“HUNDRED”, 0]]. But when I test it on CodePen the code returns exactly what it should.

Your code so far


function checkCashRegister(price, cash, cid) {
const output = {status: "OPEN", change: []};
let closed = false;
const denom = {
  "PENNY": 1,
  "NICKEL": 5,
  "DIME": 10,
  "QUARTER": 25,
  "ONE": 100,
  "FIVE": 500,
  "TEN": 1000,
  "TWENTY": 2000,
  "HUNDRED": 10000
}
let changeDue = cash * 100 - price * 100;
const register = cid.reverse().map(el => [el[0], Math.round(el[1] * 100)]);
const registerTotal = register.reduce((sum, elem) => (sum + elem[1]), 0);
if(changeDue > registerTotal){
  output.status = "INSUFFICIENT_FUNDS";
}
if (changeDue === registerTotal){
  output.status = "CLOSED";
  closed = true;
}
if(changeDue <= registerTotal){output.change = register.reduce((acc,elem) => {
   let partial = Math.min(elem[1],Math.floor(changeDue / denom[elem[0]]) * denom[elem[0]]);
   if(partial > 0){
     changeDue -= partial;
     acc.push([elem[0], partial / 100]);
     if(closed){
    acc.push(["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["HUNDRED", 0]);
  }
   }
  return acc;
}, []);
if(changeDue > 0){
  output.status = "INSUFFICIENT_FUNDS";
  output.change = [];
}
}
return output;
}

checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]]);

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36.

Challenge: Cash Register

Link to the challenge:

acc.push should push "“ONE HUNDRED” and not just “HUNDRED” :slight_smile:

Thanks! I just tried it and it passed!