Ce projet implémente un système de calcul d'impôt sur le revenu pour les salariés selon le barème fiscal français.
Le nombre de parts est calculé selon le barème suivant :
- Célibataire : 1,5 part
- Marié(e) : 2 parts
- Chaque enfant : 0,5 part supplémentaire
- Plafond maximum : 5 parts
- Célibataire, sans enfant : 1,5 parts
- Célibataire, 3 enfants : 3 parts (1,5 + 3 × 0,5)
- Marié, 3 enfants : 3,5 parts (2 + 3 × 0,5)
- Marié, 8 enfants : 5 parts (2 + 8 × 0,5 = 6, plafonné à 5)
- Salaire minimum : 60 000
- Salaire maximum : 3 000 000
- L'abattement est de 30% du salaire brut
- Plafond de l'abattement : 300 000
Revenu imposable = (Salaire brut - Abattement) / Nombre de parts
projet_ql/
├── pom.xml # Configuration Maven
├── src/
│ ├── main/
│ │ └── java/
│ │ └── fr/projet/ql/impot/
│ │ └── TaxCalculator.java # Classe principale de calcul
│ └── test/
│ └── java/
│ └── fr/projet/ql/impot/
│ └── TaxCalculatorTest.java # Tests JUnit avec @CsvSource
└── README.md
- Java 11 ou supérieur
- Maven 3.6 ou supérieur
mvn clean compilemvn testmvn packageLe projet contient 37 tests unitaires utilisant JUnit 5 et l'annotation @CsvSource pour tester différents scénarios :
-
Tests du calcul des parts fiscales (8 tests)
- Différentes configurations de statut marital et nombre d'enfants
- Vérification du plafonnement à 5 parts
-
Tests du calcul de l'abattement (6 tests)
- Différents niveaux de salaire
- Vérification du plafonnement à 300 000
-
Tests du calcul complet du revenu imposable (8 tests)
- Scénarios complets combinant tous les paramètres
-
Tests de validation (15 tests)
- Validation du nombre d'enfants négatif (1 test)
- Validation des salaires minimum et maximum (2 tests)
- Tests des cas limites (2 tests)
- Tests de plafonnement des parts fiscales (6 tests)
- Tests de plafonnement de l'abattement (4 tests)
@ParameterizedTest
@CsvSource({
"false, 0, 1.5", // Célibataire sans enfant
"false, 3, 3.0", // Célibataire 3 enfants
"true, 3, 3.5", // Marié 3 enfants
"true, 8, 5.0" // Marié 8 enfants (plafonné)
})
void testCalculateParts(boolean estMarie, int nombreEnfants, double partsAttendues) {
// ...
}TaxCalculator calculator = new TaxCalculator();
// Calcul du nombre de parts
double parts = calculator.calculateParts(true, 3); // Marié, 3 enfants => 3.5 parts
// Calcul de l'abattement
double abattement = calculator.calculateAbattement(200000); // 60000
// Calcul du revenu imposable
double revenuImposable = calculator.calculateTaxableIncome(200000, true, 3); // 40000Projet d'étude pour le calcul d'impôt des salariés