Skip to content

Commit 45aae25

Browse files
committed
added comparison output file option to test tools
1 parent 69afb11 commit 45aae25

1 file changed

Lines changed: 26 additions & 18 deletions

File tree

test/TestTools.js

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -145,13 +145,18 @@ const captureSimilarityExtrinsic = (currentCaptures, referenceCaptures) => {
145145
return result;
146146
};
147147

148-
const writeCaptures = (name, obj) => {
148+
const writeResult = (name, obj) => {
149149
try {
150150
fs.mkdirSync(comparePath, { recursive: true });
151151
} catch (err) {
152152
if (err.code !== 'EEXIST') throw err;
153153
}
154-
fs.writeFileSync(`${comparePath}/${name}.json`, compactStringify(obj, { maxLength: 100 }), 'utf8');
154+
155+
if (typeof obj === 'string') {
156+
fs.writeFileSync(`${comparePath}/${name}.md`, obj, 'utf8');
157+
} else {
158+
fs.writeFileSync(`${comparePath}/${name}.json`, compactStringify(obj, { maxLength: 100 }), 'utf8');
159+
}
155160
};
156161

157162
const toMatchExtrinsics = {
@@ -242,34 +247,37 @@ const comparisonReport = (capturesDev, capturesBuild, buildVersion, save) => {
242247

243248
const overlapChange = (totalOverlapDev / (totalOverlapBuild || 1)) - 1;
244249

245-
if (save) {
246-
writeCaptures('examples-dev', devIntrinsicsChanged);
247-
writeCaptures('examples-build', buildIntrinsicsChanged);
248-
}
249-
250-
return [
250+
const report = (breakEvery, format) => [
251251
[`Output comparison of ${similarityEntries.length}`,
252-
`examples against ${color('matter-js@' + buildVersion, colors.Yellow)} build on last run`
252+
`examples against ${format('matter-js@' + buildVersion, colors.Yellow)} build on last run`
253253
].join(' '),
254-
`\n\n${color('Similarity', colors.White)}`,
255-
`${color(toPercent(similarityAvg), similarityAvg === 1 ? colors.Green : colors.Yellow)}%`,
256-
`${color('Performance', colors.White)}`,
257-
`${color((perfChange >= 0 ? '+' : '') + toPercent(perfChange), perfChange >= 0 ? colors.Green : colors.Red)}%`,
258-
`${color('Overlap', colors.White)}`,
259-
`${color((overlapChange >= 0 ? '+' : '') + toPercent(overlapChange), overlapChange > 0 ? colors.Red : colors.Green)}%`,
254+
`\n\n${format('Similarity', colors.White)}`,
255+
`${format(toPercent(similarityAvg), similarityAvg === 1 ? colors.Green : colors.Yellow)}%`,
256+
`${format('Performance', colors.White)}`,
257+
`${format((perfChange >= 0 ? '+' : '') + toPercent(perfChange), perfChange >= 0 ? colors.Green : colors.Red)}%`,
258+
`${format('Overlap', colors.White)}`,
259+
`${format((overlapChange >= 0 ? '+' : '') + toPercent(overlapChange), overlapChange > 0 ? colors.Red : colors.Green)}%`,
260260
capturePerformance.reduce((output, p, i) => {
261261
output += `${p.name} `;
262262
output += `${similarityRatings(similaritys[p.name])} `;
263263
output += `${changeRatings(capturesDev[p.name].changedIntrinsics)} `;
264-
if (i > 0 && i < capturePerformance.length && i % 5 === 0) {
264+
if (i > 0 && i < capturePerformance.length && breakEvery > 0 && i % breakEvery === 0) {
265265
output += '\n';
266266
}
267267
return output;
268268
}, '\n\n'),
269269
`\nwhere · no change ● extrinsics changed ◆ intrinsics changed\n`,
270-
similarityAvg < 1 ? `\n${color('▶', colors.White)} ${color(compareCommand + '=' + 120 + '#' + similarityEntries[0][0], colors.BrightCyan)}` : '',
271-
intrinsicChangeCount > 0 ? `\n${color('▶', colors.White)} ${color((save ? diffCommand : diffSaveCommand), colors.BrightCyan)}` : ''
270+
similarityAvg < 1 ? `\n${format('▶', colors.White)} ${format(compareCommand + '=' + 120 + '#' + similarityEntries[0][0], colors.BrightCyan)}` : '',
271+
intrinsicChangeCount > 0 ? `\n${format('▶', colors.White)} ${format((save ? diffCommand : diffSaveCommand), colors.BrightCyan)}` : ''
272272
].join(' ');
273+
274+
if (save) {
275+
writeResult('examples-dev', devIntrinsicsChanged);
276+
writeResult('examples-build', buildIntrinsicsChanged);
277+
writeResult('examples-report', report(5, s => s));
278+
}
279+
280+
return report(5, color);
273281
};
274282

275283
module.exports = {

0 commit comments

Comments
 (0)