Inicio do Projeto Piloto
ci / verify (push) Has been cancelled

This commit is contained in:
camilafagundes committed 2026-10-02 23:59:36 -03:00
1 parent 6e23f1533b
commit 419325db12
52 files changed
+1329 -110

No files matched your search

+34
View File
@@ -0,0 +1,34 @@
import { describe, expect, it } from "vitest";
import { readSpreadsheet } from "@/infra/spreadsheet/parse";
import { buildCsv, buildXlsx } from "@/infra/export/tabular";
function csv(rows: number): Buffer {
const lines = ["Nome,Valor"];
for (let index = 0; index < rows; index += 1) lines.push(`Pessoa ${index},${index}`);
return Buffer.from(lines.join("\n"), "utf8");
}
async function measure(rows: number) {
const bytes = csv(rows);
const started = performance.now();
const parsed = await readSpreadsheet("amostra.csv", bytes);
const readMs = performance.now() - started;
const writeStarted = performance.now();
buildCsv(parsed.grid.headers, parsed.grid.rows);
const csvMs = performance.now() - writeStarted;
const xlsxStarted = performance.now();
await buildXlsx(parsed.grid.headers, parsed.grid.rows);
const xlsxMs = performance.now() - xlsxStarted;
return { rows, readMs, csvMs, xlsxMs, heapMb: Math.round(process.memoryUsage().heapUsed / 1024 / 1024) };
}
describe("baseline de planilha", () => {
it("mede leitura e escrita em amostra pequena e média", async () => {
const small = await measure(200);
const medium = await measure(5_000);
expect(small.readMs).toBeLessThan(5_000);
expect(medium.readMs).toBeLessThan(15_000);
expect(medium.xlsxMs).toBeLessThan(30_000);
expect(small.rows).toBe(200);
});
});