Files
obitools4/obitests/obitools/obisuperkmer
Eric Coissac db22d20d0a Rename obisuperkmer test script to obik-super and update command references
Update test script name from obisuperkmer to obik-super and adjust all command references accordingly.

- Changed TEST_NAME from 'obisuperkmer' to 'obik-super'
- Changed CMD from 'obisuperkmer' to 'obik'
- Updated MCMD to 'OBIk-super'
- Modified command calls to use '$CMD super' instead of direct command names
- Updated help test to use '$CMD super -h'
- Updated all test cases to use the new command format
2026-02-10 22:17:22 +01:00
..

Tests pour obisuperkmer

Description

Ce répertoire contient les tests automatisés pour la commande obisuperkmer.

Fichiers

  • test.sh : Script de test principal (exécutable)
  • test_sequences.fasta : Jeu de données de test minimal (3 séquences courtes)
  • README.md : Ce fichier

Jeu de données de test

Le fichier test_sequences.fasta contient 3 séquences de 32 nucléotides chacune :

  1. seq1 : Répétition du motif ACGT (séquence régulière)
  2. seq2 : Alternance de blocs homopolymères (AAAA, CCCC, GGGG, TTTT)
  3. seq3 : Répétition du motif ATCG (différent de seq1)

Ces séquences sont volontairement courtes pour :

  • Minimiser la taille du dépôt Git
  • Accélérer l'exécution des tests en CI/CD
  • Tester différents cas d'extraction de super k-mers

Tests effectués

Le script test.sh effectue 12 tests :

Test 1 : Affichage de l'aide

Vérifie que obisuperkmer -h s'exécute correctement.

Test 2 : Extraction basique avec paramètres par défaut

Exécute obisuperkmer avec k=21, m=11 (valeurs par défaut).

Test 3 : Vérification du fichier de sortie non vide

S'assure que la commande produit une sortie.

Test 4 : Comptage des super k-mers extraits

Vérifie qu'au moins un super k-mer a été extrait.

Test 5 : Présence des métadonnées requises

Vérifie que chaque super k-mer contient :

  • minimizer_value
  • minimizer_seq
  • parent_id

Test 6 : Extraction avec paramètres personnalisés

Teste avec k=15 et m=7.

Test 7 : Vérification des paramètres dans les métadonnées

S'assure que les valeurs k=15 et m=7 sont présentes dans la sortie.

Test 8 : Format de sortie FASTA explicite

Teste l'option --fasta-output.

Test 9 : Vérification des IDs des super k-mers

S'assure que tous les IDs contiennent "superkmer".

Test 10 : Préservation des IDs parents

Vérifie que seq1, seq2 et seq3 apparaissent dans la sortie.

Test 11 : Option -o pour fichier de sortie

Teste la redirection vers un fichier avec -o.

Test 12 : Vérification de la création du fichier avec -o

S'assure que le fichier de sortie a été créé.

Test 13 : Cohérence des longueurs

Vérifie que la somme des longueurs des super k-mers est inférieure ou égale à la longueur totale des séquences d'entrée.

Exécution des tests

Localement

cd /chemin/vers/obitools4/obitests/obitools/obisuperkmer
./test.sh

En CI/CD

Les tests sont automatiquement exécutés lors de chaque commit via le système CI/CD configuré pour le projet.

Prérequis

  • La commande obisuperkmer doit être compilée et disponible dans ../../build/
  • Les dépendances système : bash, grep, etc.

Structure du script de test

Le script suit le pattern standard utilisé par tous les tests OBITools :

  1. En-tête : Définition du nom du test et de la commande
  2. Variables : Configuration des chemins et compteurs
  3. Fonction cleanup() : Affiche les résultats et nettoie le répertoire temporaire
  4. Fonction log() : Affiche les messages horodatés
  5. Tests : Série de tests avec incrémentation des compteurs
  6. Appel cleanup() : Nettoyage et sortie avec code de retour approprié

Format de sortie

Chaque test affiche :

[obisuperkmer @ date] message

En fin d'exécution :

========================================
## Results of the obisuperkmer tests:

- 12 tests run
- 12 successfully completed
- 0 failed tests

Cleaning up the temporary directory...

========================================

Codes de retour

  • 0 : Tous les tests ont réussi
  • 1 : Au moins un test a échoué

Ajout de nouveaux tests

Pour ajouter un nouveau test, suivre le pattern :

((ntest++))
if commande_test arguments
then
    log "Description: OK" 
    ((success++))
else
    log "Description: failed"
    ((failed++))
fi

Notes

  • Les fichiers temporaires sont créés dans $TMPDIR (créé par mktemp)
  • Les fichiers de données sont dans $TEST_DIR
  • La commande testée doit être dans $OBITOOLS_DIR (../../build/)
  • Le répertoire temporaire est automatiquement nettoyé à la fin