Initial commit
This commit is contained in:
commit
435b00ca25
60
measure-drift.mjs
Executable file
60
measure-drift.mjs
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/zx
|
||||||
|
|
||||||
|
const label_file_path = process.argv.slice(-1)[0];
|
||||||
|
|
||||||
|
const labels = (await $`cat ${label_file_path}`).stdout
|
||||||
|
.split("\n")
|
||||||
|
.filter((e) => e != "")
|
||||||
|
.map((l) => l.split("\t"))
|
||||||
|
.map(([start, stop, label]) => {
|
||||||
|
const suffix = label.match(/-[^-]+$/)[0];
|
||||||
|
const filename = label.replace(suffix, "");
|
||||||
|
return {
|
||||||
|
time: parseFloat(start),
|
||||||
|
label,
|
||||||
|
filename,
|
||||||
|
suffix: suffix.slice(1),
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.reduce((acc, element) => {
|
||||||
|
if (!acc[element.filename]) {
|
||||||
|
acc[element.filename] = {
|
||||||
|
labels: {},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
acc[element.filename].labels[element.suffix] = element.time;
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
|
|
||||||
|
console.log(labels);
|
||||||
|
|
||||||
|
for (let filename in labels) {
|
||||||
|
const filelabels = labels[filename].labels;
|
||||||
|
for (const suffix of ["A", "B"]) {
|
||||||
|
const duration =
|
||||||
|
filelabels[`end${suffix}`] - filelabels[`start${suffix}`] || null;
|
||||||
|
const key = `duration[${suffix}]`;
|
||||||
|
labels[filename][key] = duration;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let filename1 in labels) {
|
||||||
|
for (let filename2 in labels) {
|
||||||
|
if (filename1 === filename2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (const suffix of ["A", "B"]) {
|
||||||
|
const key = `duration[${suffix}]`;
|
||||||
|
|
||||||
|
if (labels[filename1][key] && labels[filename2][key]) {
|
||||||
|
console.log(
|
||||||
|
filename1,
|
||||||
|
"/",
|
||||||
|
filename2,
|
||||||
|
labels[filename1][key] / labels[filename2][key]
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user