testLineSpansAreForgiving

tcmts.cli.main.testLineSpansAreForgiving · #qn7d6vif · term

import { lineSpans } from "#codebase/tcmts/cli/main";
import assert from "node:assert/strict";

export const testLineSpansAreForgiving = () => {
  assert.deepEqual(lineSpans("120"), [[120, 120]]);
  assert.deepEqual(lineSpans("120-180"), [[120, 180]]);
  // written as an agent might: quoted, spaced, with other separators
  assert.deepEqual(lineSpans('"1-60"'), [[1, 60]]);
  assert.deepEqual(lineSpans(" 1 : 60 "), [[1, 60]]);
  assert.deepEqual(lineSpans("1..60"), [[1, 60]]);
  assert.deepEqual(lineSpans("1–60"), [[1, 60]]);
  assert.deepEqual(lineSpans("60-1"), [[1, 60]]);
  // to the end, and several
  assert.deepEqual(lineSpans("90-"), [[90, Infinity]]);
  assert.deepEqual(lineSpans("1-20,90-"), [
    [1, 20],
    [90, Infinity],
  ]);
  assert.equal(lineSpans("the top"), undefined);
  assert.equal(lineSpans(""), undefined);
}

uses