feat: complete academic symbol lexicon heal, 2-column Cooper extraction, and updated assets

This commit is contained in:
2026-10-09 15:26:58 +05:00
parent 7f91366201
commit 0b12e4583b
244 changed files with 611461 additions and 1617 deletions
+52
View File
@@ -0,0 +1,52 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:words999/services/houses_service.dart';
import 'package:words999/services/words_repository.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
group('Archon Strict Noun Verification Tests', () {
late HousesService service;
late WordsRepository repo;
setUp(() async {
SharedPreferences.setMockInitialValues({});
repo = WordsRepository();
await repo.init(remoteDailyShuffle: false);
service = HousesService();
});
test('All 10 Archons are strictly nouns across 100 random sessions', () {
for (int run = 0; run < 100; run++) {
final session = service.createNewSession();
expect(session.sectors.length, 10);
for (int i = 0; i < 10; i++) {
final archon = session.sectors[i].archonWord;
expect(
archon.partOfSpeech.toLowerCase().trim(),
'существительное',
reason: 'Archon #${i + 1} «${archon.word}» is not a noun! (pos=${archon.partOfSpeech}, cat=${archon.category})',
);
expect(
archon.category.toLowerCase().contains('действие'),
isFalse,
reason: 'Archon «${archon.word}» has action category!',
);
expect(
archon.word.toLowerCase().trim(),
isNot(equals('положить')),
reason: '«положить» must never be an Archon!',
);
}
}
});
test('Word «положить» is strictly a verb in WordsRepository', () {
final w = repo.getWordByName('положить');
expect(w, isNotNull);
expect(w!.partOfSpeech.toLowerCase().trim(), 'глагол');
expect(w.category, contains('Действие'));
});
});
}