forked from menault/2026_TD3_DEV51_Qualite_Algo
Réduire la complexité de F9 en séparant débits et crédits
This commit is contained in:
@@ -348,3 +348,19 @@ disparaissent. F8 passe de **M = 4 à M = 5** : l'amélioration temporelle
|
||||
n'implique pas une baisse de M. Les tests comparent les résultats à la
|
||||
récursion initiale pour les sommes de -2 à 40 et de 0 à 8 types de pièces,
|
||||
y compris la somme nulle et l'absence de pièces.
|
||||
|
||||
### F9 — Séparer les règles des débits et des crédits
|
||||
|
||||
`categorie` répartit les transactions entre débit, montant nul et crédit.
|
||||
Les règles propres aux débits et aux crédits sont regroupées dans deux
|
||||
fonctions auxiliaires, avec des retours directs. Le test du week-end
|
||||
`jour % 7 >= 5` remplace les deux comparaisons reliées par `||`.
|
||||
|
||||
Le temps reste **`O(1)`** et la complexité cyclomatique de F9 passe de
|
||||
**14 à 3**, sous l'objectif de 10. Les auxiliaires `categorie_debit`
|
||||
et `categorie_credit` ont respectivement **M = 5** et **M = 7** : les
|
||||
décisions ne sont pas simplement déplacées vers une autre fonction
|
||||
dépassant l'objectif. Les tests confrontent les 20 montants situés aux
|
||||
seuils et à leurs voisins, y compris `LONG_MIN` et `LONG_MAX`, à la fonction
|
||||
initiale, pour 20 clients et 210 jours (cycle commun des modulos 7 et 30),
|
||||
soit **84 000 classifications**.
|
||||
|
||||
Reference in New Issue
Block a user