import { assertEquals, assertThrows, } from "https://deno.land/std@0.224.0/assert/mod.ts"; import { getCharacterWidth } from "../mod.ts"; Deno.test("getCharacterWidth ASCII", () => { assertEquals(getCharacterWidth("a"), 1); assertEquals(getCharacterWidth("A"), 1); assertEquals(getCharacterWidth("1"), 1); assertEquals(getCharacterWidth("@"), 1); assertEquals(getCharacterWidth(" "), 1); assertThrows(() => getCharacterWidth("")); assertThrows(() => getCharacterWidth("ab")); }); Deno.test("getCharacterWidth CJK", () => { assertEquals(getCharacterWidth("你"), 2); assertEquals(getCharacterWidth("好"), 2); assertEquals(getCharacterWidth("吗"), 2); assertEquals(getCharacterWidth("ガ"), 2); assertEquals(getCharacterWidth("ギ"), 2); assertEquals(getCharacterWidth("グ"), 2); assertEquals(getCharacterWidth("ソ"), 2); assertThrows(() => getCharacterWidth("?")); assertThrows(() => getCharacterWidth("!")); assertThrows(() => getCharacterWidth("你好")); assertThrows(() => getCharacterWidth("ヨスガノ")); }); Deno.test("getCharacterWidth previously faulty cases", () => { assertEquals(getCharacterWidth("𤲶"), 2); assertThrows(() => getCharacterWidth("𤲶"[0])); });