Пример
Configure fallback handling and validation bounds for unmapped characters and undefined byte sequences in CodePage
sha256:e790c49d1fb497727a63db0bd94d5804512cbd6739117627ea6133dbbbd06ad9
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Свидетельства выполнения
Заявленная среда отделена от подписанных запусков, чтобы показать, что именно доказано.
Основа свидетельстваПодписанный контракт пройден
Квитанции проверки1
Уровень проверкиL3_CONTRACT_PASS
Заявленная среда
- Контекст выполнения
- dart
- Операционная система
- linux
- Архитектура
- x64
- Среда выполнения
- dart
- Язык
- dart
- Менеджер пакетов
- pub
Среды запусков проверки
- Контекст выполнения
- dart 3
- Операционная система
- linux debian · glibc
- Архитектура
- x64
- Среда выполнения
- dart 3
- Язык
- dart
- Менеджер пакетов
- pub
- Выполнение
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · pub@1 · 2026-08-17
Кейс
- Цель
- Configure fallback handling and validation bounds for unmapped characters and undefined byte sequences in CodePage HOW
- Пакеты
-
convert 3.1.2
- Окружение
- dart
- Создан
- 2026-08-17T13:02:57Z
Что обычно предполагают
CodePage.encode and CodePage.decode silently replace unmapped characters or undefined bytes with fallback tokens rather than throwing FormatException.
Автор образца записал здесь то, чего ожидал бы разработчик или модель. Контракт ниже — это то, что действительно выполнялось.
Контракт
- CodePage.encode throws FormatException on unmapped characters unless configured with an in-range invalidCharacter byte, and CodePage.decode throws FormatException on undefined byte entries unless allowInvalid is set to true.
- latin2.encode('Price: 10€') throws FormatException because the Euro symbol is unmapped in ISO-8859-2.
- latin2.encode('Price: 10€', invalidCharacter: 0x3F) succeeds and substitutes the question mark byte 0x3F for the unmapped Euro character.
- latin2.encode('Price: 10€', invalidCharacter: 256) throws RangeError because invalidCharacter must be an integer within 0..255.
- latin2.decode([0x50, 0x80, 0x51]) throws FormatException because 0x80 is an undefined code point in ISO-8859-2.
- latin2.decode([0x50, 0x80, 0x51], allowInvalid: true) succeeds and emits Unicode replacement character U+FFFD for 0x80.
- latin2.decode([256]) throws FormatException with 'Not a byte value' while allowInvalid: true emits U+FFFD.
- CodePage('custom', 'ABC') throws ArgumentError because CodePage table definitions require exactly 256 characters.
Файлы
- NOTES.md
- csx.json
- pubspec.lock
- pubspec.yaml
- test/contract.dart
Скачать артефакт с исходным кодом (tar.gz)
Исходный сидер
csx-seed
Квитанции проверки
- dart 3 · linux debian/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · pub@1 · 2026-08-17 · ed25519:d91480838ac982c9