docs: add coverage reference files and flag architectural drift

These files catalog test coverage for Rust modules across architecture, implementation, and theory sections. They track recent structural changes, flag areas prone to documentation drift, and mandate verification of key parameters and routing logic to maintain alignment with the active codebase.
This commit is contained in:
Eric Coissac
2026-05-23 13:19:31 +02:00
parent b2a52bfb37
commit b7db3a33ed
22 changed files with 335 additions and 0 deletions
@@ -0,0 +1,22 @@
<!-- coverage sidecar — ne pas ajouter au nav mkdocs -->
# Coverage: architecture/index_architecture.md
## Code couvert
- `obilayeredmap/src/layer.rs` — Layer<D>, trait LayerData, modes () / PersistentCompactIntMatrix / PersistentBitMatrix
- `obilayeredmap/src/mphf_layer.rs` — MphfLayer, EvidenceKind (Exact / Approx), LayerEvidence enum
- `obilayeredmap/src/map.rs` — LayeredMap<D>
- `obilayeredmap/src/meta.rs` — LayerMeta, PartitionMeta
- `obikindex/src/meta.rs` — IndexConfig (kmer_size, n_bits, with_counts, evidence, block_bits), IndexMeta
- `obikindex/src/index.rs` — KmerIndex, build_layers
- `obicompactvec/src/` — PersistentCompactIntMatrix, PersistentBitMatrix (DataStore implementations)
## Notes
FORT RISQUE DE DÉRIVE. Nombreux changements récents :
- Ajout de `EvidenceKind` (Exact / Approx { b, z }) dans `IndexConfig` et `LayerMeta`
- Ajout de `block_bits` dans `IndexConfig`
- `LayerEvidence` enum dans `mphf_layer.rs` remplace l'ancienne approche monolithique
- Distinction `open()` vs `open_sequential()` dans `UnitigFileReader`
- Commandes `reindex` et `estimate` ajoutées
Vérifier que la hiérarchie à 3 niveaux décrite est toujours exacte et que les nouveaux paramètres sont documentés.
+16
View File
@@ -0,0 +1,16 @@
<!-- coverage sidecar — ne pas ajouter au nav mkdocs -->
# Coverage: architecture/query.md
## Code couvert
- `obikmer/src/cmd/query.rs` — commande query, format de sortie
- `obikpartitionner/src/query_layer.rs` — routage de la requête à travers les partitions
- `obiread/src/lib.rs` — lecture des séquences d'entrée pour la requête
## Notes
RISQUE DE DÉRIVE. Vérifier :
- La commande `unitig` a été modifiée pour utiliser `open_sequential()` — vérifier si query est concerné
- `find_exact` / `find_approx` / `find` générique ont été ajoutés dans `MphfLayer` — le chemin de requête a changé
- Si l'index est approximatif (Approx), la requête peut produire des faux positifs : la doc le mentionne-t-elle ?
- Format de sortie CSV (`obikindex/src/csv.rs` ou équivalent) à vérifier
@@ -0,0 +1,12 @@
<!-- coverage sidecar — ne pas ajouter au nav mkdocs -->
# Coverage: architecture/sequences/invariant.md
## Code couvert
- `obikseq/src/sequence.rs` — invariants de représentation des séquences (ACGT, longueur max)
- `obikseq/src/unitig.rs` — type Unitig, contrainte MAX_KMERS_PER_CHUNK (255 kmers par chunk)
## Notes
Document court et stable. Vérifier que la limite de 256 nucléotides (ou 255 kmers) par chunk
est toujours la même dans `obiskio::MAX_KMERS_PER_CHUNK`.