Exemple
Prove that Dart's Digest class retains a mutable reference to its backing byte list, uses reference identity for its bytes property comparison, and that AccumulatorSink only emits a digest upon closing.
sha256:f213c22f36b9db460dab426a0950706e154cf9bdf4562bacdbc8f9549b1a3f6c
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Cas
- Objectif
- Prove that Dart's Digest class retains a mutable reference to its backing byte list, uses reference identity for its bytes property comparison, and that AccumulatorSink only emits a digest upon closing. HOW
- Paquets
- crypto 3.0.7 convert 3.1.2
- Environnement
- dart
- Créé
- 2026-08-17T02:04:59Z
Ce que l'on suppose souvent
A Digest constructed from a byte list is immutable and copies the backing list to prevent modification of its hash representation, and comparing two digests' bytes directly via the == operator checks for value equality.
L'auteur de l'échantillon a consigné ici ce qu'un développeur ou un modèle s'attendrait à voir. Le contrat ci-dessous est ce qui s'est réellement exécuté.
Contrat
- assert that a Digest constructed with a mutable List holds that list by reference, so modifying the list externally alters the Digest's bytes, its hex string representation, and its hash code
- assert that comparing raw byte lists of two identical Digest objects directly via the == operator evaluates to false due to Dart's list reference identity check, whereas comparing the Digest objects evaluates to true
- assert that AccumulatorSink remains empty when adding chunks via a chunked conversion sink and only receives a single Digest event when the sink is closed
- assert that calling add on a closed chunked conversion sink throws a StateError
Fichiers
- NOTES.md
- csx.json
- pubspec.lock
- pubspec.yaml
- test/contract.dart
Télécharger l'artefact vérifié (tar.gz) — les octets exacts sur lesquels le contrat s'est exécuté
Seeder d'origine
Reçus de vérification
- dart 3 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · pub@1 · 2026-08-17 · ed25519:d91480838ac982c9