import 'dart:convert'; import 'package:halkyon_learn_curator/src/sources/alphabets.dart'; import 'package:test/test.dart'; void main() { test('the Greek alphabet in its order, each letter with its capital, ' 'names, transliteration and sound', () { final [header, ...letters] = [ for (final line in greekAlphabet()) jsonDecode(line) as Map, ]; expect(header['source'], 'greek-alphabet'); expect(header['kind'], 'characters'); expect(header['language'], 'el'); expect(letters, hasLength(24)); expect(letters.first['headword'], 'Α α'); final sigma = letters.singleWhere((letter) => letter['id'] == 'σ'); expect(sigma['headword'], 'Σ σ ς'); expect(sigma['keys'], containsAll(['ς', 'σίγμα', 'sigma', 's'])); expect(letters[1]['entry'], { 'romaji': 'v', 'script': 'greek', 'name': 'βήτα', 'englishName': 'beta', 'sound': 'v', }); // Found by a name typed without its accent. expect(letters.last['keys'], contains('ωμεγα')); }); test('the Hangul letters in the order schools teach them, found by sound ' 'and name', () { final letters = hangulEntries(); expect(letters, hasLength(40)); expect(letters.first.headword, 'ㄱ'); expect(letters.first.keys, containsAll(['ㄱ', '기역', 'g', 'k'])); // ㅇ is silent opening a syllable: no key for its sound there. final ieung = letters.singleWhere((letter) => letter.id == 'ㅇ'); expect(ieung.keys, ['ㅇ', '이응', 'ng']); expect(letters.last.headword, 'ㅢ'); }); }