import { assertEquals } from '@std/assert'; import { detectLanguage } from './language.ts'; Deno.test('Detect English language', () => { assertEquals(detectLanguage(``, 0.90), undefined); assertEquals(detectLanguage(`Good morning my fellow friends`, 0.90), 'en'); assertEquals( detectLanguage( `Would you listen to Michael Jackson's songs?\n\nnostr:nevent1qvzqqqqqqypzqprpljlvcnpnw3pejvkkhrc3y6wvmd7vjuad0fg2ud3dky66gaxaqyvhwumn8ghj7cm0vfexzen4d4sjucm0d5hhyetvv9usqg8htx8xcjq7ffrzxu7nrhlr8vljcv6gpmet0auy87mpj6djxk4myqha02kp`, 0.90, ), 'en', ); assertEquals( detectLanguage( `https://youtu.be/FxppefYTA2I?si=grgEpbEhFu_-3V_uhttps://youtu.be/FxppefYTA2I?si=grgEpbEhFu_-3V_uhttps://youtu.be/FxppefYTA2I?si=grgEpbEhFu_-3V_uhttps://youtu.be/FxppefYTA2I?si=grgEpbEhFu_-3V_uWould you listen to Michael Jackson's songs?\n\nnostr:nevent1qvzqqqqqqypzqprpljlvcnpnw3pejvkkhrc3y6wvmd7vjuad0fg2ud3dky66gaxaqyvhwumn8ghj7cm0vfexzen4d4sjucm0d5hhyetvv9usqg8htx8xcjq7ffrzxu7nrhlr8vljcv6gpmet0auy87mpj6djxk4myqha02kp`, 0.90, ), 'en', ); assertEquals( detectLanguage( `https://youtu.be/FxppefYTA2I?si=grgEpbEhFu_-3V_u ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ๐Ÿ˜‚๐Ÿ’ฏโ™กโŒจ๏ธŽ https://youtu.be/FxppefYTA2I?si=grgEpbEhFu_-3V_uhttps://youtu.be/FxppefYTA2I?si=grgEpbEhFu_-3V_uhttps://youtu.be/FxppefYTA2I?si=grgEpbEhFu_-3V_u Would you listen to Michael Jackson's songs?\n\nnostr:nevent1qvzqqqqqqypzqprpljlvcnpnw3pejvkkhrc3y6wvmd7vjuad0fg2ud3dky66gaxaqyvhwumn8ghj7cm0vfexzen4d4sjucm0d5hhyetvv9usqg8htx8xcjq7ffrzxu7nrhlr8vljcv6gpmet0auy87mpj6djxk4myqha02kp`, 0.90, ), 'en', ); }); Deno.test('Detects definitive texts', () => { // NOTE: pass `1` as min confidence to test only the definitive patterns // unambiguous assertEquals(detectLanguage('์•ˆ๋…•ํ•˜์„ธ์š”.', 1), 'ko'); assertEquals(detectLanguage('ฮ“ฮตฮนฮฌ ฯƒฮฟฯ…!', 1), 'el'); assertEquals(detectLanguage('ืฉืœื•ื!', 1), 'he'); assertEquals(detectLanguage('ใ“ใ‚“ใซใกใฏใ€‚', 1), 'ja'); assertEquals( detectLanguage( 'ๆœ€่ฟ‘ใ€้•ทๅฅณใ‹ใ‚‰ใ€Œไธญๅญฆ็”Ÿ็”ทๅญๅ…จๅ“กใ‚ฏใ‚ฝใ€ใจใ„ใ†่ฉฑใ‚’่‰ฏใ่žใไธญๅญฆ็”Ÿๅฅณๅญๅดใฎ่ฆ–็‚นใŒๅˆ†ใ‹ใฃใฆใ‚ˆใ‹ใฃใŸใ€‚็ˆถใ‹ใ‚‰ใฏใ€Œไธญๅญฆ็”Ÿ็”ทๅญใฏ่‡ชๅˆ†ใŒใ‚ฏใ‚ฝใ ใจใ„ใ†ใ“ใจใ‚’3ๅนด้–“ใ‹ใ‹ใฃใฆๅญฆ็ฟ’ใ™ใ‚‹ใ‚“ใ ใ‚ˆใ€ใจ่จ€ใฃใฆใŠใ„ใŸ', 1, ), 'ja', ); // ambiguous assertEquals(detectLanguage('ไฝ ๅฅฝ', 1), undefined); assertEquals(detectLanguage('ๆฑไบฌ', 1), undefined); assertEquals(detectLanguage('ะŸั€ะธะฒะตั‚', 1), undefined); assertEquals(detectLanguage('Hello', 1), undefined); });