import { expect } from "chai";
import { tokenize } from "../tokenizer";
describe(__filename + "#", () => {
[
[`1234`, [{ value: "1234", kind: 0, pos: 0 }]],
[
``,
[
{ value: "<", kind: 3, pos: 0 },
{ value: "abc", kind: 0, pos: 1 },
{ value: " ", kind: 1, pos: 4 },
{ value: "/", kind: 3, pos: 5 },
{ value: ">", kind: 3, pos: 6 }
]
],
[
``,
[
{ value: "<", kind: 3, pos: 0 },
{ value: "abc", kind: 0, pos: 1 },
{ value: "\n\r", kind: 1, pos: 4 },
{ value: "c", kind: 0, pos: 6 },
{ value: "=", kind: 3, pos: 7 },
{ value: '"', kind: 3, pos: 8 },
{ value: "d", kind: 0, pos: 9 },
{ value: '"', kind: 3, pos: 10 },
{ value: " ", kind: 1, pos: 11 },
{ value: "/", kind: 3, pos: 12 },
{ value: ">", kind: 3, pos: 13 }
]
],
[
`: 1234.5; }`,
[
{ value: ":", kind: 3, pos: 0 },
{ value: " ", kind: 1, pos: 1 },
{ value: "1234", kind: 0, pos: 2 },
{ value: ".", kind: 3, pos: 6 },
{ value: "5", kind: 0, pos: 7 },
{ value: ";", kind: 3, pos: 8 },
{ value: " ", kind: 1, pos: 9 },
{ value: "}", kind: 3, pos: 10 }
]
]
].forEach(([source, expectedTokens]: [string, string]) => {
it(`can tokenize ${source}`, () => {
const tokens = tokenize(source).source;
expect(tokens).to.eql(expectedTokens);
});
});
});