Global Metrics
path: .metrics.mi.mi_original
old: -42.67378945671357
new: -42.67533500584071
path: .metrics.mi.mi_sei
old: -82.15638267111012
new: -82.15861242717133
path: .metrics.halstead.effort
old: 2133962.075241476
new: 2136197.7754781027
path: .metrics.halstead.level
old: 0.013580318156462191
new: 0.013570138007919116
path: .metrics.halstead.N2
old: 1333.0
new: 1334.0
path: .metrics.halstead.volume
old: 28979.883915603557
new: 28988.49862544767
path: .metrics.halstead.purity_ratio
old: 0.9493920304103314
new: 0.9491098931056032
path: .metrics.halstead.difficulty
old: 73.63597733711048
new: 73.69121813031161
path: .metrics.halstead.time
old: 118553.44862452644
new: 118677.65419322794
path: .metrics.halstead.length
old: 3364.0
new: 3365.0
path: .metrics.halstead.bugs
old: 5.525054205775383
new: 5.528912508995615
Spaces Data
Minimal test - lines (201, 217)
path: .spaces[7].metrics.halstead.length
old: 54.0
new: 55.0
path: .spaces[7].metrics.halstead.volume
old: 256.7639251168273
new: 261.51881261899075
path: .spaces[7].metrics.halstead.effort
old: 2384.2364475133963
new: 2549.8084230351596
path: .spaces[7].metrics.halstead.purity_ratio
old: 1.8779386156414937
new: 1.8437942771752849
path: .spaces[7].metrics.halstead.time
old: 132.4575804174109
new: 141.6560235019533
path: .spaces[7].metrics.halstead.N2
old: 20.0
new: 21.0
path: .spaces[7].metrics.halstead.bugs
old: 0.059490135814602906
new: 0.06221337752716842
path: .spaces[7].metrics.halstead.level
old: 0.10769230769230768
new: 0.10256410256410256
path: .spaces[7].metrics.halstead.difficulty
old: 9.285714285714286
new: 9.75
path: .spaces[7].metrics.mi.mi_sei
old: 80.35854655378269
new: 80.2208910547045
path: .spaces[7].metrics.mi.mi_visual_studio
old: 55.61492806575989
new: 55.559129515423855
path: .spaces[7].metrics.mi.mi_original
old: 95.1015269924494
new: 95.0061114713748
Code
async waitForAnalysisSuccess(
analysisFunction,
cancel = wait(60000, new Error("Audio analysis timed out"))
) {
let aborted = false;
cancel.then(() => (aborted = true));
// We need to give the Analyser some time to start gathering data.
await wait(200);
do {
await new Promise(resolve => requestAnimationFrame(resolve));
if (aborted) {
throw await cancel;
}
} while (!analysisFunction(this.getByteFrequencyData()));
},