flowos's picture
iter 14: hybrid regex + fine-tuned EXAONE 4.0 1.2B (F1=0.930)
1bcb098 verified
import { describe, it, expect } from "vitest";
import { detectAddress } from "./address.js";
describe("detectAddress", () => {
it("detects Seoul address", () => {
const results = detectAddress("์„œ์šธํŠน๋ณ„์‹œ ๊ฐ•๋‚จ๊ตฌ ํ…Œํ—ค๋ž€๋กœ 123๋ฒˆ์ง€");
expect(results).toHaveLength(1);
expect(results[0].type).toBe("ADDRESS");
expect(results[0].confidence).toBe(0.8);
});
it("detects Busan address", () => {
const results = detectAddress("๋ถ€์‚ฐ๊ด‘์—ญ์‹œ ํ•ด์šด๋Œ€๊ตฌ ์šฐ๋™ 456๋ฒˆ");
expect(results).toHaveLength(1);
});
it("detects Gyeonggi address", () => {
const results = detectAddress("๊ฒฝ๊ธฐ๋„ ์„ฑ๋‚จ์‹œ ๋ถ„๋‹น๊ตฌ ํŒ๊ต๋กœ 789๋ฒˆ์ง€");
expect(results).toHaveLength(1);
});
it("detects Sejong address", () => {
const results = detectAddress("์„ธ์ข…ํŠน๋ณ„์ž์น˜์‹œ ํ•œ๋ˆ„๋ฆฌ๋Œ€๋กœ 100");
expect(results).toHaveLength(1);
});
it("does not detect non-address Korean text", () => {
const results = detectAddress("์˜ค๋Š˜ ๋‚ ์”จ๊ฐ€ ์ข‹์Šต๋‹ˆ๋‹ค.");
expect(results).toHaveLength(0);
});
it("handles Jeju address", () => {
const results = detectAddress("์ œ์ฃผํŠน๋ณ„์ž์น˜๋„ ์ œ์ฃผ์‹œ ์—ฐ๋™ 300๋ฒˆ์ง€");
expect(results).toHaveLength(1);
});
});