import assert from 'node:assert/strict'; const pe = {acc:0,a:0,b:0,av:false,bv:false}; function edge({a=0,b=0,av=false,bv=false, advance=true,clear=false,reset=false}={}) { if (reset || clear) { Object.assign(pe,{acc:0,a:0,b:0,av:false,bv:false}); } else if (advance) { if (av && bv) pe.acc += a*b; Object.assign(pe,{a,b,av,bv}); } return {...pe}; } edge({clear:true}); assert.equal(edge({a:-2,b:3,av:true,bv:true}).acc,-6); const held={...pe}; assert.deepEqual(edge({a:99,b:99,av:true,bv:true,advance:false}),held); assert.equal(edge({a:4,b:-5,av:true,bv:true}).acc,-26); assert.equal(edge({a:8,b:8,av:true,bv:false}).acc,-26); assert.equal(pe.av,true); assert.equal(pe.bv,false); edge({clear:true,a:100,b:100,av:true,bv:true}); assert.equal(pe.acc,0); assert.equal(pe.av,false); assert.equal(edge({a:-128,b:-128,av:true,bv:true}).acc,16384); edge({reset:true,advance:false}); assert.deepEqual(pe,{acc:0,a:0,b:0,av:false,bv:false}); console.log('PE lab passed');