Parity with Japanese's kanji and kana: - The characters' tab is named by its language (Hanzi, Hangul & Hanja, Alphabet), its groups too: HSK levels and the characters in common use (Hong Kong's grades for traditional ones); Hangul and the Hanja taught in schools; Greek's letters. Radicals for Chinese and Korean in their own forms (讠 for 言 in simplified Chinese), none for Greek. - A character's readings are named as its language names them: On and Kun, Pinyin, Eum and Hun (음, 훈); a letter means its sound and name. - How characters are written comes by language: Chinese from Make Me a Hanzi (its medians in KanjiVG's square, Arphic Public License, a data file beside the app, never in cards), the Hangul letters drawn by the curator; a Korean word is written letter by letter (닭: ㄷ ㅏ ㄺ). Words of alphabets (German, Greek) aren't written by hand. - A Chinese word's pinyin is typed in a session, tone numbers turning into marks (ni3 → nǐ); KRDict's levels (초급, 중급, 고급) tag Korean words; a Korean word's pronunciation shows in brackets ([가치]). - Smaller: Look up in the composer keeps a noun's article; the Watch filter names its level list; hints and placeholders by language. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
26 lines
1 KiB
Dart
26 lines
1 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
||
import 'package:halkyon_learn_flutter/src/feature/kanji/model/hangul.dart';
|
||
|
||
void main() {
|
||
test('a Hangul syllable is written with its letters: the opening '
|
||
'consonant, the vowel and the closing one or cluster', () {
|
||
expect(hangulLetters('가'), ['ㄱ', 'ㅏ']);
|
||
expect(hangulLetters('닭'), ['ㄷ', 'ㅏ', 'ㄺ']);
|
||
expect(hangulLetters('쓰'), ['ㅆ', 'ㅡ']);
|
||
expect(hangulLetters('왜'), ['ㅇ', 'ㅙ']);
|
||
expect(hangulLetters('힣'), ['ㅎ', 'ㅣ', 'ㅎ']);
|
||
// What is no syllable stays as it is.
|
||
expect(hangulLetters('ㄱ'), ['ㄱ']);
|
||
expect(hangulLetters('食'), ['食']);
|
||
});
|
||
|
||
test('scripts whose strokes are drawn: Han characters, kana, Hangul; '
|
||
'not the alphabets', () {
|
||
expect(hasDrawnScript('食べる'), isTrue);
|
||
expect(hasDrawnScript('学习'), isTrue);
|
||
expect(hasDrawnScript('학교'), isTrue);
|
||
expect(hasDrawnScript('ㄱ'), isTrue);
|
||
expect(hasDrawnScript('das Haus'), isFalse);
|
||
expect(hasDrawnScript('Β β'), isFalse);
|
||
});
|
||
}
|