132 lines
4.7 KiB
Bash
132 lines
4.7 KiB
Bash
#!/bin/bash
|
|
|
|
echo "==============================================="
|
|
echo " CONFLUENT COVERAGE TEST SUITE"
|
|
echo "==============================================="
|
|
echo ""
|
|
|
|
# Kill any existing server on port 3000
|
|
echo "[1/4] Arrêt du serveur existant..."
|
|
lsof -ti:3000 | xargs kill -9 2>/dev/null || true
|
|
sleep 2
|
|
|
|
# Start server in background
|
|
echo "[2/4] Démarrage du serveur..."
|
|
cd "$(dirname "$0")"
|
|
npm start > /dev/null 2>&1 &
|
|
SERVER_PID=$!
|
|
sleep 5
|
|
|
|
# Check if server is running
|
|
if ! curl -s http://localhost:3000/api/stats > /dev/null 2>&1; then
|
|
echo "[ERREUR] Le serveur n'a pas démarré correctement"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[3/4] Exécution des tests de coverage..."
|
|
echo ""
|
|
|
|
# Function to extract coverage
|
|
get_coverage() {
|
|
echo "$1" | grep -o '"coverage":[0-9]*' | grep -o '[0-9]*'
|
|
}
|
|
|
|
# Function to extract missing words
|
|
get_missing() {
|
|
echo "$1" | python3 -c "import sys, json; data=json.load(sys.stdin); print(', '.join([w['word'] for w in data.get('missing', [])]))" 2>/dev/null || echo "N/A"
|
|
}
|
|
|
|
# Test 1 - Texte court culturel
|
|
RESULT1=$(curl -s -X POST http://localhost:3000/api/analyze/coverage \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"text": "Les enfants des echos observent le courant dans la confluence"}')
|
|
COV1=$(get_coverage "$RESULT1")
|
|
MISS1=$(get_missing "$RESULT1")
|
|
|
|
# Test 2 - Texte long culturel
|
|
RESULT2=$(curl -s -X POST http://localhost:3000/api/analyze/coverage \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"text": "La civilisation de la Confluence repose sur l'\''observation, la transmission de la memoire et l'\''union des castes. Les Enfants des Echos ecoutent les murmures du passe tandis que les Faucons Chasseurs protegent les frontieres."}')
|
|
COV2=$(get_coverage "$RESULT2")
|
|
MISS2=$(get_missing "$RESULT2")
|
|
|
|
# Test 3 - Vocabulaire quotidien
|
|
RESULT3=$(curl -s -X POST http://localhost:3000/api/analyze/coverage \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"text": "manger boire eau nourriture pain viande poisson legume fruit sel epice cuire couteau table feu lumiere maison porte fenetre toit sol mur escalier"}')
|
|
COV3=$(get_coverage "$RESULT3")
|
|
MISS3=$(get_missing "$RESULT3")
|
|
|
|
# Test 4 - Pronoms et verbes
|
|
RESULT4=$(curl -s -X POST http://localhost:3000/api/analyze/coverage \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"text": "je tu il elle nous vous ils regarder voir observer ecouter parler dire penser savoir comprendre aimer vouloir pouvoir devoir faire aller venir"}')
|
|
COV4=$(get_coverage "$RESULT4")
|
|
MISS4=$(get_missing "$RESULT4")
|
|
|
|
# Test 5 - Adjectifs
|
|
RESULT5=$(curl -s -X POST http://localhost:3000/api/analyze/coverage \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"text": "grand petit haut bas long court chaud froid bon mauvais beau laid fort faible rapide lent clair sombre"}')
|
|
COV5=$(get_coverage "$RESULT5")
|
|
MISS5=$(get_missing "$RESULT5")
|
|
|
|
# Test 6 - Nombres
|
|
RESULT6=$(curl -s -X POST http://localhost:3000/api/analyze/coverage \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"text": "un deux trois quatre cinq six sept huit neuf dix cent mille premier dernier"}')
|
|
COV6=$(get_coverage "$RESULT6")
|
|
MISS6=$(get_missing "$RESULT6")
|
|
|
|
# Get stats
|
|
STATS=$(curl -s http://localhost:3000/api/stats)
|
|
ENTRIES=$(echo "$STATS" | grep -o '"total_entries":[0-9]*' | head -1 | grep -o '[0-9]*')
|
|
|
|
echo "[4/4] Génération du rapport..."
|
|
echo ""
|
|
echo "==============================================="
|
|
echo " RAPPORT DE COVERAGE"
|
|
echo "==============================================="
|
|
echo ""
|
|
echo "Lexique chargé: $ENTRIES entrées (ancien)"
|
|
echo ""
|
|
echo "TEST 1 - Texte court culturel : ${COV1}%"
|
|
echo "TEST 2 - Texte long culturel : ${COV2}%"
|
|
echo "TEST 3 - Vocabulaire quotidien : ${COV3}%"
|
|
echo "TEST 4 - Pronoms et verbes : ${COV4}%"
|
|
echo "TEST 5 - Adjectifs courants : ${COV5}%"
|
|
echo "TEST 6 - Nombres : ${COV6}%"
|
|
echo ""
|
|
|
|
# Calculate average
|
|
AVG=$(( (COV1 + COV2 + COV3 + COV4 + COV5 + COV6) / 6 ))
|
|
echo "COVERAGE MOYEN : ${AVG}%"
|
|
echo ""
|
|
echo "==============================================="
|
|
echo " MOTS MANQUANTS PAR TEST"
|
|
echo "==============================================="
|
|
echo ""
|
|
echo "TEST 1 (${COV1}%):"
|
|
echo " $MISS1"
|
|
echo ""
|
|
echo "TEST 2 (${COV2}%):"
|
|
echo " $MISS2"
|
|
echo ""
|
|
echo "TEST 3 (${COV3}%):"
|
|
echo " $MISS3"
|
|
echo ""
|
|
echo "TEST 4 (${COV4}%):"
|
|
echo " $MISS4"
|
|
echo ""
|
|
echo "TEST 5 (${COV5}%):"
|
|
echo " $MISS5"
|
|
echo ""
|
|
echo "TEST 6 (${COV6}%):"
|
|
echo " $MISS6"
|
|
echo ""
|
|
echo "==============================================="
|
|
echo ""
|
|
echo "Serveur toujours actif sur http://localhost:3000 (PID: $SERVER_PID)"
|
|
echo "Pour arrêter: kill $SERVER_PID"
|
|
echo ""
|