88 lines
2.5 KiB
TypeScript
88 lines
2.5 KiB
TypeScript
#!/usr/bin/env bun
|
|
|
|
/**
|
|
* Test script for JMdict-based English to Katakana conversion
|
|
* Usage: bun run scripts/test-jmdict-conversion.ts
|
|
*/
|
|
|
|
import {
|
|
convertEnglishToKatakanaWithJMdictFallback,
|
|
convertEnglishWordsOnly,
|
|
getTextConverterInfo,
|
|
initializeTextConverter,
|
|
} from "../services/text-converter.js";
|
|
|
|
async function testJMdictConversion() {
|
|
console.log("🧪 JMdict English→Katakana変換テスト開始\n");
|
|
|
|
try {
|
|
// Initialize the text converter
|
|
console.log("📚 テキストコンバーターを初期化中...");
|
|
await initializeTextConverter();
|
|
|
|
// Get status information
|
|
const info = getTextConverterInfo();
|
|
console.log("✅ 初期化完了:");
|
|
console.log(` - Kuroshiro: ${info.kuroshiro ? "✓" : "✗"}`);
|
|
console.log(` - JMdict: ${info.jmdict ? "✓" : "✗"}`);
|
|
if (info.jmdictInfo) {
|
|
console.log(` - JMdict バージョン: ${info.jmdictInfo.version}`);
|
|
console.log(` - 辞書日付: ${info.jmdictInfo.dictDate}`);
|
|
}
|
|
console.log();
|
|
|
|
// Test words
|
|
const testWords = [
|
|
"hello world",
|
|
"computer science",
|
|
"artificial intelligence",
|
|
"machine learning",
|
|
"programming language",
|
|
"JavaScript TypeScript",
|
|
"database management",
|
|
"software development",
|
|
"This is a test of English to Katakana conversion using JMdict.",
|
|
"Coffee shop restaurant hotel",
|
|
"Business meeting presentation report",
|
|
];
|
|
|
|
console.log("🔄 変換テスト:");
|
|
console.log("━".repeat(80));
|
|
|
|
for (const testText of testWords) {
|
|
console.log(`\n📝 入力: "${testText}"`);
|
|
|
|
try {
|
|
// Test JMdict-enhanced conversion
|
|
const jmdictResult =
|
|
await convertEnglishToKatakanaWithJMdictFallback(testText);
|
|
console.log(`🎯 JMdict: "${jmdictResult}"`);
|
|
|
|
// Test original conversion for comparison
|
|
const originalResult = await convertEnglishWordsOnly(testText);
|
|
console.log(`📖 従来版: "${originalResult}"`);
|
|
|
|
// Show difference if any
|
|
if (jmdictResult !== originalResult) {
|
|
console.log("💡 JMdictによる改善が確認されました");
|
|
}
|
|
} catch (error) {
|
|
console.error(`❌ 変換エラー: ${error}`);
|
|
}
|
|
}
|
|
|
|
console.log("\n━".repeat(80));
|
|
console.log("✅ テスト完了");
|
|
} catch (error) {
|
|
console.error("❌ テスト失敗:", error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
// Run the test
|
|
if (import.meta.main) {
|
|
testJMdictConversion().catch(console.error);
|
|
}
|
|
|
|
export { testJMdictConversion };
|