UNPKG

nadesiko3

Version:
97 lines (93 loc) 3.43 kB
/* eslint-disable no-undef */ import assert from 'assert' import { NakoPrepare } from '../src/nako_prepare.mjs' // eslint-disable-next-line no-undef describe('prepare', () => { const p = NakoPrepare.getInstance() const convert = (/** @type {string} */ code) => { // 変換してからソースマップを除く return p.convert(code).map((v) => v.text).join('') } // --- test --- it('simple', () => { const a = convert('abc') assert.strictEqual(a, 'abc') const b = convert('SRSR') assert.strictEqual(b, 'SRSR') }) it('simple-multibytes', () => { const a_ = '単語' const a = convert(a_) assert.strictEqual(a, a_) const b_ = '牛乳|美貌|麦油|破棄' const b = convert(b_) assert.strictEqual(b, b_) const c_ = 'A=50 #hogehoge\nAを表示' const c = convert(c_) assert.strictEqual(c, c_) }) it('convert num flag', () => { const a = convert('123') assert.strictEqual(a, '123') const b = convert('あbc') assert.strictEqual(b, 'あbc') }) it('str', () => { const a = convert('123「123」') assert.strictEqual(a, '123「123」') const b = convert('123『123』123') assert.strictEqual(b, '123『123』123') const c = convert('123“あいう”') assert.strictEqual(c, '123“あいう”') const d = convert('123“123”123') assert.strictEqual(d, '123“123”123') }) it('str2', () => { const a = convert('123"123"123') assert.strictEqual(a, '123"123"123') const b = convert('123\'123\'123') assert.strictEqual(b, '123\'123\'123') }) it('str3 - 全角を半角自動変換', () => { const d = convert('123"123"123') assert.strictEqual(d, '123"123"123') const c = convert('123\'123\'123') assert.strictEqual(c, '123\'123\'123') }) it('str4 - 絵文字文字列 - 全角を半角自動変換', () => { const a = convert('123🌴123🌴123') assert.strictEqual(a, '123🌴123🌴123') const b = convert('123🌿123🌿123') assert.strictEqual(b, '123🌿123🌿123') }) it('CR+LF1', () => { const a = convert('123\r\n456\r789') assert.strictEqual(a, '123\n456\n789') const b = convert('123_ \r\n456 \n789') assert.strictEqual(b, '123_ \n456 \n789') }) it('CR+LF2', () => { const a = convert('A= 1 + _ \r\n1 + 2 \nAを表示') assert.strictEqual(a, 'A= 1 + _ \n1 + 2 \nAを表示') }) it('Multibyte Flag to Singlebyte Flag', () => { const a = convert('!$12345#') assert.strictEqual(a, '!$12345#\n') }) it('convertTable', () => { const a = convert('123※456') assert.strictEqual(a, '123#456\n') // #はコメント扱い const b = convert('123、456。') // 読点はカンマに変換 (#276)あらため(#877) assert.strictEqual(b, '123,456;') }) it('「,.」を「、。」として扱う(#735)', () => { const a = convert('3.14') assert.strictEqual(a, '3.14') const b = convert(',') assert.strictEqual(b, ',') }) it('複数行コメント内にある文字列記号でエラーになる問題(#731)', () => { const a = convert('/* " */') assert.strictEqual(a, '/* " */') }) })