const_data/radicals: store both formal and informal variant of radical
Build and test / build (push) Successful in 5m47s
Build and test / build (push) Successful in 5m47s
This commit is contained in:
+291
-204
@@ -1,217 +1,304 @@
|
||||
const Map<int, List<String>> radicals = {
|
||||
1: ['一', '|', '丶', 'ノ', '乙', '亅'],
|
||||
class RadkfileRadical {
|
||||
/// The formal variant of the radical
|
||||
///
|
||||
/// This is the one you want to use for searching.
|
||||
final String formalVariant;
|
||||
|
||||
/// The informal variant of the radical (if it differs from the formal one).
|
||||
///
|
||||
/// This is the one you should display to the user.
|
||||
final String? informalVariant;
|
||||
|
||||
/// The number of strokes in this radical.
|
||||
final int strokeCount;
|
||||
|
||||
const RadkfileRadical({
|
||||
required this.formalVariant,
|
||||
this.informalVariant,
|
||||
required this.strokeCount,
|
||||
});
|
||||
}
|
||||
|
||||
const Map<int, List<RadkfileRadical>> radicals = {
|
||||
1: [
|
||||
RadkfileRadical(formalVariant: '一', strokeCount: 1),
|
||||
RadkfileRadical(formalVariant: '|', strokeCount: 1),
|
||||
RadkfileRadical(formalVariant: '丶', strokeCount: 1),
|
||||
RadkfileRadical(formalVariant: 'ノ', strokeCount: 1),
|
||||
RadkfileRadical(formalVariant: '乙', strokeCount: 1),
|
||||
RadkfileRadical(formalVariant: '亅', strokeCount: 1),
|
||||
],
|
||||
2: [
|
||||
'二',
|
||||
'亠',
|
||||
'人',
|
||||
'⺅',
|
||||
'𠆢',
|
||||
'儿',
|
||||
'入',
|
||||
'ハ',
|
||||
'丷',
|
||||
'冂',
|
||||
'冖',
|
||||
'冫',
|
||||
'几',
|
||||
'凵',
|
||||
'刀',
|
||||
'⺉',
|
||||
'力',
|
||||
'勹',
|
||||
'匕',
|
||||
'匚',
|
||||
'十',
|
||||
'卜',
|
||||
'卩',
|
||||
'厂',
|
||||
'厶',
|
||||
'又',
|
||||
'マ',
|
||||
'九',
|
||||
'ユ',
|
||||
'乃',
|
||||
'𠂉',
|
||||
RadkfileRadical(formalVariant: '二', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '亠', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '人', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '化', informalVariant: '⺅', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '个', informalVariant: '𠆢', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '儿', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '入', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: 'ハ', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '并', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '冂', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '冖', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '冫', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '几', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '凵', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '刀', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '刈', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '力', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '勹', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '匕', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '匚', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '十', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '卜', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '卩', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '厂', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '厶', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '又', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: 'マ', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '九', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: 'ユ', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '乃', strokeCount: 2),
|
||||
RadkfileRadical(formalVariant: '乞', strokeCount: 2),
|
||||
],
|
||||
3: [
|
||||
'⻌',
|
||||
'口',
|
||||
'囗',
|
||||
'土',
|
||||
'士',
|
||||
'夂',
|
||||
'夕',
|
||||
'大',
|
||||
'女',
|
||||
'子',
|
||||
'宀',
|
||||
'寸',
|
||||
'小',
|
||||
'⺌',
|
||||
'尢',
|
||||
'尸',
|
||||
'屮',
|
||||
'山',
|
||||
'川',
|
||||
'巛',
|
||||
'工',
|
||||
'已',
|
||||
'巾',
|
||||
'干',
|
||||
'幺',
|
||||
'广',
|
||||
'廴',
|
||||
'廾',
|
||||
'弋',
|
||||
'弓',
|
||||
'ヨ',
|
||||
'彑',
|
||||
'彡',
|
||||
'彳',
|
||||
'⺖',
|
||||
'⺘',
|
||||
'⺡',
|
||||
'⺨',
|
||||
'⺾',
|
||||
'⻏',
|
||||
'⻖',
|
||||
'也',
|
||||
'亡',
|
||||
'及',
|
||||
'久',
|
||||
RadkfileRadical(formalVariant: '込', informalVariant: '⻌', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '口', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '囗', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '土', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '士', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '夂', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '夕', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '大', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '女', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '子', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '宀', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '寸', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '小', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '尚', informalVariant: '⺌', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '尢', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '尸', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '屮', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '山', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '川', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '巛', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '工', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '已', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '巾', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '干', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '幺', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '广', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '廴', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '廾', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '弋', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '弓', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: 'ヨ', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '彑', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '彡', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '彳', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '忙', informalVariant: '⺖', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '扎', informalVariant: '⺘', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '汁', informalVariant: '⺡', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '犯', informalVariant: '⺨', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '艾', informalVariant: '⺾', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '邦', informalVariant: '⻏', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '阡', informalVariant: '⻖', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '也', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '亡', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '及', strokeCount: 3),
|
||||
RadkfileRadical(formalVariant: '久', strokeCount: 3),
|
||||
],
|
||||
4: [
|
||||
'⺹',
|
||||
'心',
|
||||
'戈',
|
||||
'戸',
|
||||
'手',
|
||||
'支',
|
||||
'攵',
|
||||
'文',
|
||||
'斗',
|
||||
'斤',
|
||||
'方',
|
||||
'无',
|
||||
'日',
|
||||
'曰',
|
||||
'月',
|
||||
'木',
|
||||
'欠',
|
||||
'止',
|
||||
'歹',
|
||||
'殳',
|
||||
'比',
|
||||
'毛',
|
||||
'氏',
|
||||
'气',
|
||||
'水',
|
||||
'火',
|
||||
'⺣',
|
||||
'爪',
|
||||
'父',
|
||||
'爻',
|
||||
'爿',
|
||||
'片',
|
||||
'牛',
|
||||
'犬',
|
||||
'⺭',
|
||||
'王',
|
||||
'元',
|
||||
'井',
|
||||
'勿',
|
||||
'尤',
|
||||
'五',
|
||||
'屯',
|
||||
'巴',
|
||||
'毋',
|
||||
RadkfileRadical(formalVariant: '老', informalVariant: '⺹', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '心', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '戈', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '戸', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '手', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '支', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '攵', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '文', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '斗', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '斤', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '方', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '无', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '日', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '曰', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '月', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '木', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '欠', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '止', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '歹', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '殳', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '比', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '毛', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '氏', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '气', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '水', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '火', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '杰', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '爪', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '父', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '爻', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '爿', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '片', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '牛', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '犬', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '礼', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '王', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '元', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '井', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '勿', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '尤', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '五', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '屯', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '巴', strokeCount: 4),
|
||||
RadkfileRadical(formalVariant: '毋', strokeCount: 4),
|
||||
],
|
||||
5: [
|
||||
'玄',
|
||||
'瓦',
|
||||
'甘',
|
||||
'生',
|
||||
'用',
|
||||
'田',
|
||||
'疋',
|
||||
'疒',
|
||||
'癶',
|
||||
'白',
|
||||
'皮',
|
||||
'皿',
|
||||
'目',
|
||||
'矛',
|
||||
'矢',
|
||||
'石',
|
||||
'示',
|
||||
'禸',
|
||||
'禾',
|
||||
'穴',
|
||||
'立',
|
||||
'⻂',
|
||||
'世',
|
||||
'巨',
|
||||
'冊',
|
||||
'母',
|
||||
'⺲',
|
||||
'牙',
|
||||
RadkfileRadical(formalVariant: '玄', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '瓦', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '甘', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '生', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '用', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '田', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '疋', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '疔', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '癶', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '白', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '皮', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '皿', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '目', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '矛', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '矢', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '石', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '示', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '禹', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '禾', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '穴', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '立', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '初', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '世', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '巨', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '冊', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '母', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '買', strokeCount: 5),
|
||||
RadkfileRadical(formalVariant: '牙', strokeCount: 5),
|
||||
],
|
||||
6: [
|
||||
'瓜',
|
||||
'竹',
|
||||
'米',
|
||||
'糸',
|
||||
'缶',
|
||||
'羊',
|
||||
'羽',
|
||||
'而',
|
||||
'耒',
|
||||
'耳',
|
||||
'聿',
|
||||
'肉',
|
||||
'自',
|
||||
'至',
|
||||
'臼',
|
||||
'舌',
|
||||
'舟',
|
||||
'艮',
|
||||
'色',
|
||||
'虍',
|
||||
'虫',
|
||||
'血',
|
||||
'行',
|
||||
'衣',
|
||||
'西',
|
||||
RadkfileRadical(formalVariant: '瓜', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '竹', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '米', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '糸', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '缶', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '羊', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '羽', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '而', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '耒', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '耳', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '聿', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '肉', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '自', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '至', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '臼', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '舌', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '舟', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '艮', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '色', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '虍', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '虫', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '血', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '行', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '衣', strokeCount: 6),
|
||||
RadkfileRadical(formalVariant: '西', strokeCount: 6),
|
||||
],
|
||||
7: [
|
||||
'臣',
|
||||
'見',
|
||||
'角',
|
||||
'言',
|
||||
'谷',
|
||||
'豆',
|
||||
'豕',
|
||||
'豸',
|
||||
'貝',
|
||||
'赤',
|
||||
'走',
|
||||
'足',
|
||||
'身',
|
||||
'車',
|
||||
'辛',
|
||||
'辰',
|
||||
'酉',
|
||||
'釆',
|
||||
'里',
|
||||
'舛',
|
||||
'麦',
|
||||
RadkfileRadical(formalVariant: '臣', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '見', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '角', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '言', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '谷', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '豆', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '豕', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '豸', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '貝', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '赤', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '走', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '足', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '身', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '車', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '辛', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '辰', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '酉', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '釆', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '里', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '舛', strokeCount: 7),
|
||||
RadkfileRadical(formalVariant: '麦', strokeCount: 7),
|
||||
],
|
||||
8: ['金', '長', '門', '隶', '隹', '雨', '青', '非', '奄', '岡', '免', '斉'],
|
||||
9: ['面', '革', '韭', '音', '頁', '風', '飛', '食', '首', '香', '品'],
|
||||
10: ['馬', '骨', '高', '髟', '鬥', '鬯', '鬲', '鬼', '竜', '韋'],
|
||||
11: ['魚', '鳥', '鹵', '鹿', '麻', '亀', '啇', '黄', '黒'],
|
||||
12: ['黍', '黹', '無', '歯'],
|
||||
13: ['黽', '鼎', '鼓', '鼠'],
|
||||
14: ['鼻', '齊'],
|
||||
17: ['龠'],
|
||||
8: [
|
||||
RadkfileRadical(formalVariant: '金', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '長', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '門', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '隶', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '隹', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '雨', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '青', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '非', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '奄', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '岡', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '免', strokeCount: 8),
|
||||
RadkfileRadical(formalVariant: '斉', strokeCount: 8),
|
||||
],
|
||||
9: [
|
||||
RadkfileRadical(formalVariant: '面', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '革', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '韭', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '音', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '頁', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '風', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '飛', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '食', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '首', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '香', strokeCount: 9),
|
||||
RadkfileRadical(formalVariant: '品', strokeCount: 9),
|
||||
],
|
||||
10: [
|
||||
RadkfileRadical(formalVariant: '馬', strokeCount: 10),
|
||||
RadkfileRadical(formalVariant: '骨', strokeCount: 10),
|
||||
RadkfileRadical(formalVariant: '高', strokeCount: 10),
|
||||
RadkfileRadical(formalVariant: '髟', strokeCount: 10),
|
||||
RadkfileRadical(formalVariant: '鬥', strokeCount: 10),
|
||||
RadkfileRadical(formalVariant: '鬯', strokeCount: 10),
|
||||
RadkfileRadical(formalVariant: '鬲', strokeCount: 10),
|
||||
RadkfileRadical(formalVariant: '鬼', strokeCount: 10),
|
||||
RadkfileRadical(formalVariant: '竜', strokeCount: 10),
|
||||
RadkfileRadical(formalVariant: '韋', strokeCount: 10),
|
||||
],
|
||||
11: [
|
||||
RadkfileRadical(formalVariant: '魚', strokeCount: 11),
|
||||
RadkfileRadical(formalVariant: '鳥', strokeCount: 11),
|
||||
RadkfileRadical(formalVariant: '鹵', strokeCount: 11),
|
||||
RadkfileRadical(formalVariant: '鹿', strokeCount: 11),
|
||||
RadkfileRadical(formalVariant: '麻', strokeCount: 11),
|
||||
RadkfileRadical(formalVariant: '亀', strokeCount: 11),
|
||||
RadkfileRadical(formalVariant: '滴', strokeCount: 11),
|
||||
RadkfileRadical(formalVariant: '黄', strokeCount: 11),
|
||||
RadkfileRadical(formalVariant: '黒', strokeCount: 11),
|
||||
],
|
||||
12: [
|
||||
RadkfileRadical(formalVariant: '黍', strokeCount: 12),
|
||||
RadkfileRadical(formalVariant: '黹', strokeCount: 12),
|
||||
RadkfileRadical(formalVariant: '無', strokeCount: 12),
|
||||
RadkfileRadical(formalVariant: '歯', strokeCount: 12),
|
||||
],
|
||||
13: [
|
||||
RadkfileRadical(formalVariant: '黽', strokeCount: 13),
|
||||
RadkfileRadical(formalVariant: '鼎', strokeCount: 13),
|
||||
RadkfileRadical(formalVariant: '鼓', strokeCount: 13),
|
||||
RadkfileRadical(formalVariant: '鼠', strokeCount: 13),
|
||||
],
|
||||
14: [
|
||||
RadkfileRadical(formalVariant: '鼻', strokeCount: 14),
|
||||
RadkfileRadical(formalVariant: '齊', strokeCount: 14),
|
||||
],
|
||||
17: [RadkfileRadical(formalVariant: '龠', strokeCount: 17)],
|
||||
};
|
||||
|
||||
@@ -7,32 +7,29 @@ import 'package:test/test.dart';
|
||||
import 'setup_database_connection.dart';
|
||||
|
||||
void main() {
|
||||
test(
|
||||
'All constant radicals should exist in the database',
|
||||
() async {
|
||||
final connection = await setupDatabaseConnection();
|
||||
final allRadicalsInDb = await connection.query(
|
||||
RADKFILETableNames.radkfile,
|
||||
columns: ['radical'],
|
||||
distinct: true,
|
||||
);
|
||||
test('All constant radicals should exist in the database', () async {
|
||||
final connection = await setupDatabaseConnection();
|
||||
final allRadicalsInDb = await connection.query(
|
||||
RADKFILETableNames.radkfile,
|
||||
columns: ['radical'],
|
||||
distinct: true,
|
||||
);
|
||||
|
||||
final radicalsInDb = allRadicalsInDb
|
||||
.map((e) => e['radical'] as String)
|
||||
.toSet();
|
||||
final radicalsInDb = allRadicalsInDb
|
||||
.map((e) => e['radical'] as String)
|
||||
.toSet();
|
||||
|
||||
final missingRadicals = radicals.values.flattenedToSet.difference(
|
||||
radicalsInDb,
|
||||
);
|
||||
final missingRadicals = radicals.values.flattenedToSet
|
||||
.map((e) => e.formalVariant)
|
||||
.toSet()
|
||||
.difference(radicalsInDb);
|
||||
|
||||
expect(
|
||||
missingRadicals,
|
||||
isEmpty,
|
||||
reason: 'Missing radicals in database: $missingRadicals',
|
||||
);
|
||||
},
|
||||
skip: 'Test is valid, code is broken, fix me',
|
||||
);
|
||||
expect(
|
||||
missingRadicals,
|
||||
isEmpty,
|
||||
reason: 'Missing radicals in database: $missingRadicals',
|
||||
);
|
||||
});
|
||||
|
||||
test(
|
||||
'All radicals in database should be in the constant radical list',
|
||||
@@ -49,7 +46,7 @@ void main() {
|
||||
.toSet();
|
||||
|
||||
final extraRadicals = radicalsInDb.difference(
|
||||
radicals.values.flattenedToSet,
|
||||
radicals.values.flattenedToSet.map((e) => e.formalVariant).toSet(),
|
||||
);
|
||||
|
||||
expect(
|
||||
@@ -59,21 +56,35 @@ void main() {
|
||||
'Extra radicals in database missing in the constant list: $extraRadicals',
|
||||
);
|
||||
},
|
||||
skip: 'Test is valid, code is broken, fix me',
|
||||
);
|
||||
|
||||
group(
|
||||
'All radicals should return results',
|
||||
test(
|
||||
'All constant radicals are located in the correct stroke count group',
|
||||
() {
|
||||
for (final radical in radicals.values.flattened) {
|
||||
test(' - $radical', () async {
|
||||
final connection = await setupDatabaseConnection();
|
||||
final result = await connection.jadbSearchKanjiByRadicals([radical]);
|
||||
expect(result, isNotEmpty);
|
||||
});
|
||||
for (final mapEntry in radicals.entries) {
|
||||
final strokeCount = mapEntry.key;
|
||||
final radicalsInGroup = mapEntry.value;
|
||||
for (final radical in radicalsInGroup) {
|
||||
expect(
|
||||
strokeCount,
|
||||
radical.strokeCount,
|
||||
reason:
|
||||
'Radical ${radical.formalVariant} should have stroke count $strokeCount but has ${radical.strokeCount}',
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
skip:
|
||||
'These will be automatically fixed once the other radical tests are passing',
|
||||
);
|
||||
|
||||
group('All radicals should return results', () {
|
||||
for (final radical in radicals.values.flattened) {
|
||||
test(' - $radical', () async {
|
||||
final connection = await setupDatabaseConnection();
|
||||
final result = await connection.jadbSearchKanjiByRadicals([
|
||||
radical.formalVariant,
|
||||
]);
|
||||
expect(result, isNotEmpty);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user