Files
999/test/geomancy_master_prompt_test.dart

116 lines
6.8 KiB
Dart

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);
});
}