Global Metrics

path: .metrics.halstead.N2
old: 272.0
new: 273.0

path: .metrics.halstead.bugs
old: 1.1515153186222769
new: 1.1554808242367764

path: .metrics.halstead.effort
old: 203042.27073003276
new: 204092.0067344964

path: .metrics.halstead.purity_ratio
old: 1.0790896242981702
new: 1.0774862221818282

path: .metrics.halstead.length
old: 672.0
new: 673.0

path: .metrics.halstead.difficulty
old: 43.82222222222222
new: 43.983333333333334

path: .metrics.halstead.time
old: 11280.126151668486
new: 11338.444818583135

path: .metrics.halstead.volume
old: 4633.317536942938
new: 4640.2123547062465

path: .metrics.halstead.level
old: 0.02281947261663286
new: 0.022735884804850323

path: .metrics.mi.mi_original
old: 25.5532239439257
new: 25.545491600493506

path: .metrics.mi.mi_sei
old: -2.1126236029653036
new: -2.1237790164894115

path: .metrics.mi.mi_visual_studio
old: 14.943405815161228
new: 14.938883976896786

Spaces Data

Minimal test - lines (217, 244)

path: .spaces[5].metrics.halstead.purity_ratio
old: 1.7340883888430534
new: 1.7184659709255483

path: .spaces[5].metrics.halstead.time
old: 564.4194600753212
new: 582.7959076126573

path: .spaces[5].metrics.halstead.volume
old: 596.8891230172308
new: 602.3153877719328

path: .spaces[5].metrics.halstead.N2
old: 43.0
new: 44.0

path: .spaces[5].metrics.halstead.bugs
old: 0.15636098633423162
new: 0.15973671333169617

path: .spaces[5].metrics.halstead.level
old: 0.0587515299877601
new: 0.057416267942583726

path: .spaces[5].metrics.halstead.difficulty
old: 17.020833333333332
new: 17.416666666666668

path: .spaces[5].metrics.halstead.effort
old: 10159.55028135578
new: 10490.326337027833

path: .spaces[5].metrics.halstead.length
old: 110.0
new: 111.0

path: .spaces[5].metrics.mi.mi_sei
old: 57.53026472040712
new: 57.462372725714786

path: .spaces[5].metrics.mi.mi_original
old: 81.71128379787773
new: 81.66422465317414

path: .spaces[5].metrics.mi.mi_visual_studio
old: 47.784376489986975
new: 47.75685652232406

Code

async function waitForEvents(events, message, ordered = false) {
  let expected = events.expected || events;
  let unexpected = events.unexpected || [];
  // Next expected event index.
  let currentIdx = 0;

  let unexpectedListener = new UnexpectedEvents(unexpected);

  let results = await Promise.all(
    expected.map((evt, idx) => {
      const [eventType, matchCriteria] = evt;
      return waitForEvent(eventType, matchCriteria, message).then(result => {
        return [result, idx == currentIdx++];
      });
    })
  );

  unexpectedListener.stop();

  if (ordered) {
    ok(
      results.every(([, isOrdered]) => isOrdered),
      `${message ? message + ": " : ""}Correct event order`
    );
  }

  return results.map(([event]) => event);
}