import 'package:halkyon_learn_curator/src/japanese/kana.dart'; import 'package:test/test.dart'; void main() { test('katakana becomes hiragana; the rest stays', () { expect(toHiragana('テレビ'), 'てれび'); expect(toHiragana('カード'), 'かーど'); expect(toHiragana('食べる'), '食べる'); }); test('kana become Hepburn romaji, as people type them', () { expect(toRomaji('たべる'), 'taberu'); expect(toRomaji('とうきょう'), 'toukyou'); expect(toRomaji('しゃしん'), 'shashin'); expect(toRomaji('きって'), 'kitte'); expect(toRomaji('まっちゃ'), 'matcha'); expect(toRomaji('カード'), 'kaado'); expect(toRomaji('パーティー'), 'paatii'); expect(toRomaji('ふぁいる'), 'fairu'); expect(toRomaji('ぢ'), 'ji'); expect(toRomaji('デュエット'), 'dyuetto'); expect(toRomaji('フュージョン'), 'fyuujon'); }); test('long vowels written once, where that differs', () { expect(withShortVowels('toukyou'), 'tokyo'); expect(withShortVowels('kaado'), 'kado'); expect(withShortVowels('oniisan'), 'onisan'); expect(withShortVowels('taberu'), isNull); }); test('full-width letters and digits become the ones people type', () { expect(halfWidth('Tシャツ'), 'Tシャツ'); expect(halfWidth('3D CD'), '3D CD'); expect(halfWidth('東京'), '東京'); }); }