This commit is contained in:
2025-06-11 23:05:27 +09:00
parent 6e2700fe3d
commit 7f719bb827

View File

@ -0,0 +1,87 @@
#!/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 };