feat: complete academic symbol lexicon heal, 2-column Cooper extraction, and updated assets
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:words999/models/syncretic_session_model.dart';
|
||||
import 'package:words999/services/words_repository.dart';
|
||||
import 'package:words999/services/oracle_master_prompt_generator.dart';
|
||||
|
||||
void main() {
|
||||
setUpAll(() async {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
await WordsRepository().init();
|
||||
});
|
||||
|
||||
test('Generates complete Geomancy Master Prompt for Great Shield', () {
|
||||
final repo = WordsRepository();
|
||||
final word = repo.allWords[0];
|
||||
|
||||
final judge = GeomancyPromptFigure(
|
||||
position: 'Верховный Судья',
|
||||
name: 'Большая Удача',
|
||||
latinName: 'Fortuna Major',
|
||||
arabicName: 'Al-Nasra al-Dakhila',
|
||||
lines: [1, 1, 2, 2],
|
||||
element: 'Огонь',
|
||||
planet: 'Солнце',
|
||||
lore: 'Высший триумф, защита и вход благодати.',
|
||||
linkedWord: word,
|
||||
);
|
||||
|
||||
final reconciler = GeomancyPromptFigure(
|
||||
position: 'Примиритель',
|
||||
name: 'Прибыль',
|
||||
latinName: 'Acquisitio',
|
||||
arabicName: 'Al-Qabd al-Dakhil',
|
||||
lines: [2, 1, 1, 2],
|
||||
element: 'Воздух',
|
||||
planet: 'Юпитер',
|
||||
lore: 'Умножение ресурсов, духовное обогащение.',
|
||||
linkedWord: word,
|
||||
);
|
||||
|
||||
final prompt = OracleMasterPromptGenerator.generateGeomancyMasterPrompt(
|
||||
question: 'Исход ключевого решения',
|
||||
layoutTitle: 'Великий Щит Судьбы (16 фигур)',
|
||||
isShield: true,
|
||||
judge: judge,
|
||||
reconciler: reconciler,
|
||||
rightWitness: judge,
|
||||
leftWitness: reconciler,
|
||||
);
|
||||
|
||||
expect(prompt.isNotEmpty, true);
|
||||
expect(prompt.contains("АРАБСКАЯ ГЕОМАНТИЯ ('ИЛМ АР-РАМЛ)"), true);
|
||||
expect(prompt.contains('ВЕРХОВНЫЙ СУДЬЯ'), true);
|
||||
expect(prompt.contains('ПРИМИРИТЕЛЬ'), true);
|
||||
expect(prompt.contains('Fortuna Major'), true);
|
||||
expect(prompt.contains('Acquisitio'), true);
|
||||
expect(prompt.contains('Исход ключевого решения'), true);
|
||||
expect(prompt.contains('ТРЕБОВАНИЯ К ИНТЕРПРЕТАЦИИ НЕЙРОСЕТЬЮ'), true);
|
||||
});
|
||||
|
||||
test('Generates Cross-System Master Prompt with Great Geomantic Shield structure', () {
|
||||
final repo = WordsRepository();
|
||||
final word = repo.allWords[0];
|
||||
|
||||
final items = [
|
||||
ReadingSignItem(title: '1-я Мать: Via', subtitle: 'Огонь • Солнце', symbol: '· · · ·', lore: 'Путь, движение', linkedWord: word),
|
||||
ReadingSignItem(title: '2-я Мать: Populus', subtitle: 'Вода • Луна', symbol: '·· ·· ·· ··', lore: 'Толпа, пассивность', linkedWord: word),
|
||||
ReadingSignItem(title: '3-я Мать: Conjunctio', subtitle: 'Воздух • Меркурий', symbol: '·· · · ··', lore: 'Соединение, союз', linkedWord: word),
|
||||
ReadingSignItem(title: '4-я Мать: Carcer', subtitle: 'Земля • Сатурн', symbol: '· ·· ·· ·', lore: 'Тюрьма, фиксация', linkedWord: word),
|
||||
ReadingSignItem(title: '1-я Дочь: Fortuna Major', subtitle: 'Огонь • Солнце', symbol: '· · ·· ··', lore: 'Великая удача'),
|
||||
ReadingSignItem(title: '2-я Дочь: Acquisitio', subtitle: 'Воздух • Юпитер', symbol: '·· · · ··', lore: 'Прибыль'),
|
||||
ReadingSignItem(title: '3-я Дочь: Puella', subtitle: 'Воздух • Венера', symbol: '· · ·· ·', lore: 'Девушка'),
|
||||
ReadingSignItem(title: '4-я Дочь: Puer', subtitle: 'Огонь • Марс', symbol: '· · · ··', lore: 'Юноша'),
|
||||
ReadingSignItem(title: '1-й Племянник: Amissio', subtitle: 'Земля • Венера', symbol: '· ·· · ··', lore: 'Потеря'),
|
||||
ReadingSignItem(title: '2-й Племянник: Albus', subtitle: 'Вода • Меркурий', symbol: '·· ·· · ··', lore: 'Белизна'),
|
||||
ReadingSignItem(title: '3-й Племянник: Rubeus', subtitle: 'Огонь • Марс', symbol: '·· · ·· ··', lore: 'Краснота'),
|
||||
ReadingSignItem(title: '4-й Племянник: Tristitia', subtitle: 'Земля • Сатурн', symbol: '·· ·· ·· ·', lore: 'Печаль'),
|
||||
ReadingSignItem(title: 'Правый Свидетель (Внешнее): Fortuna Minor', subtitle: 'Огонь • Солнце', symbol: '· · ·· ·', lore: 'Малая удача'),
|
||||
ReadingSignItem(title: 'Левый Свидетель (Внутреннее): Laetitia', subtitle: 'Воздух • Юпитер', symbol: '· ·· ·· ··', lore: 'Радость'),
|
||||
ReadingSignItem(title: 'СУДЬЯ (Итог): Fortuna Major', subtitle: 'Огонь • Солнце', symbol: '· · ·· ··', lore: 'Триумф и истина', linkedWord: word),
|
||||
ReadingSignItem(title: 'Примиритель: Populus', subtitle: 'Вода • Луна', symbol: '·· ·· ·· ··', lore: 'Окончательное согласие'),
|
||||
];
|
||||
|
||||
final geomancyReading = SyncreticReading(
|
||||
id: 'reading_geomancy_test',
|
||||
systemId: 'geomancy',
|
||||
systemName: "Арабская Геомантия ('Илм ар-рамл)",
|
||||
systemIcon: '⌛',
|
||||
timestamp: DateTime.now(),
|
||||
layoutTitle: 'Великий Геомантический Щит (16 фигур)',
|
||||
inputMethod: 'sand_ritual',
|
||||
items: items,
|
||||
question: 'Каков исход предприятия?',
|
||||
);
|
||||
|
||||
final session = SyncreticSession(
|
||||
id: 'session_test_1',
|
||||
date: DateTime.now(),
|
||||
mainQuestion: 'Каков исход предприятия?',
|
||||
readings: [geomancyReading],
|
||||
);
|
||||
|
||||
final crossPrompt = OracleMasterPromptGenerator.generateCrossSystemComparison(session);
|
||||
|
||||
expect(crossPrompt.contains('ВЕЛИКИЙ МЕТА-МАСТЕР-ПРОМПТ'), true);
|
||||
expect(crossPrompt.contains('СВЯЩЕННАЯ АРХИТЕКТУРА ВЕЛИКОГО ГЕОМАНТИЧЕСКОГО ЩИТА (16 САКРАЛЬНЫХ ФИГУР)'), true);
|
||||
expect(crossPrompt.contains('ВЕРХОВНЫЙ СУДЬЯ'), true);
|
||||
expect(crossPrompt.contains('ПРИМИРИТЕЛЬ'), true);
|
||||
expect(crossPrompt.contains('ДВА СВИДЕТЕЛЯ'), true);
|
||||
expect(crossPrompt.contains('ЧЕТЫРЕ МАТЕРИ'), true);
|
||||
expect(crossPrompt.contains('ЧЕТЫРЕ ДОЧЕРИ'), true);
|
||||
expect(crossPrompt.contains('ЧЕТЫРЕ ПЛЕМЯННИКА'), true);
|
||||
expect(crossPrompt.contains('Геомантический вектор: Итоговый вердикт выносит Верховный Судья'), true);
|
||||
expect(crossPrompt.contains('вердикт Верховного Судьи Геомантии (Аль-Кади)'), true);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user