import { Line, StatementNode } from "../src/parse"; import { calculateTotals } from "../src/totals"; describe("calculateTotals", () => { const statement = new StatementNode(" move.w d0,d1"); test("single timings", () => { const lines: Line[] = [ { statement, timing: { values: [[4, 2, 1]], labels: [] }, bytes: 2 }, { statement, timing: { values: [[8, 1, 0]], labels: [] }, bytes: 1 }, { statement }, { statement, timing: { values: [[12, 0, 1]], labels: [] }, bytes: 2 }, ]; const result = calculateTotals(lines); expect(result.isRange).toEqual(false); expect(result.min).toEqual([24, 3, 2]); expect(result.max).toEqual([24, 3, 2]); expect(result.bytes).toEqual(5); }); test("range", () => { const lines: Line[] = [ { statement, timing: { values: [ [4, 2, 1], [6, 2, 1], ], labels: [], }, bytes: 2, }, { statement, timing: { values: [[8, 1, 0]], labels: [] }, bytes: 1 }, { statement }, { statement, timing: { values: [[12, 0, 1]], labels: [] }, bytes: 2 }, ]; const result = calculateTotals(lines); expect(result.isRange).toEqual(true); expect(result.min).toEqual([24, 3, 2]); expect(result.max).toEqual([26, 3, 2]); expect(result.bytes).toEqual(5); }); });