Skip to content
This repository was archived by the owner on Jul 2, 2026. It is now read-only.

Commit af5f108

Browse files
committed
exercice terminé
1 parent c714929 commit af5f108

2 files changed

Lines changed: 35 additions & 22 deletions

File tree

src/main/java/fr/univ_amu/iut/exercice1/AnneesBissextiles.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,32 @@
22

33
/// Kata 1 - Années bissextiles.
44
///
5-
/// Premier kata en pair programming. Kata court (~10-15 min) parfait pour poser le rythme
6-
/// driver/navigator et les swaps de 7 minutes.
5+
/// Premier kata en pair programming. Kata court (~10-15 min) parfait pour poser
6+
/// le rythme driver/navigator et les swaps de 7 minutes.
77
public class AnneesBissextiles {
88

9-
/// Détermine si une année est bissextile selon les règles du calendrier grégorien.
9+
/// Détermine si une année est bissextile selon les règles du calendrier
10+
/// grégorien.
1011
///
1112
/// @param annee année à tester (positive)
1213
/// @return `true` si l'année est bissextile, `false` sinon
1314
public static boolean estBissextile(int annee) {
1415
// TODO kata 1 : découvrir progressivement les 3 règles en activant
1516
// les tests un par un. Commencez par un simple modulo 4, puis
1617
// ajoutez les exceptions à chaque fois qu'un nouveau test échoue.
17-
boolean bissextile = false;
18-
return bissextile;
18+
19+
if (annee % 4 == 0 && annee % 100 == 0 && annee % 400 == 0) {
20+
boolean bissextile = true;
21+
return bissextile;
22+
} else if (annee % 4 == 0 && annee % 100 == 0) {
23+
boolean bissextile = false;
24+
return bissextile;
25+
} else if (annee % 4 == 0) {
26+
boolean bissextile = true;
27+
return bissextile;
28+
} else {
29+
boolean bissextile = false;
30+
return bissextile;
31+
}
1932
}
2033
}

src/test/java/fr/univ_amu/iut/exercice1/AnneesBissextilesTest.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5-
import org.junit.jupiter.api.Disabled;
65
import org.junit.jupiter.api.Test;
76

87
/**
@@ -27,97 +26,98 @@ class AnneesBissextilesTest {
2726

2827
// ========= Tests 1 à 3 : poser le terrain =========
2928

30-
@Disabled("Retire cette annotation pour activer le test")
29+
// @Disabled("Retire cette annotation pour activer le test")
3130
@Test
3231
void l_annee_2021_n_est_pas_bissextile() {
3332
assertThat(AnneesBissextiles.estBissextile(2021)).isFalse();
3433
}
3534

36-
@Disabled("Retire cette annotation pour activer le test")
3735
@Test
3836
void l_annee_2023_n_est_pas_bissextile() {
3937
assertThat(AnneesBissextiles.estBissextile(2023)).isFalse();
4038
}
4139

42-
@Disabled("Retire cette annotation pour activer le test")
40+
// @Disabled("Retire cette annotation pour activer le test")
4341
@Test
4442
void l_annee_2025_n_est_pas_bissextile() {
4543
assertThat(AnneesBissextiles.estBissextile(2025)).isFalse();
4644
}
4745

4846
// ========= Tests 4 à 6 : introduction de la règle "divisible par 4" =========
4947

50-
@Disabled("Retire cette annotation pour activer le test")
48+
// @Disabled("Retire cette annotation pour activer le test")
5149
@Test
5250
void l_annee_2020_est_bissextile() {
5351
assertThat(AnneesBissextiles.estBissextile(2020)).isTrue();
5452
}
5553

56-
@Disabled("Retire cette annotation pour activer le test")
54+
// @Disabled("Retire cette annotation pour activer le test")
5755
@Test
5856
void l_annee_2024_est_bissextile() {
5957
assertThat(AnneesBissextiles.estBissextile(2024)).isTrue();
6058
}
6159

62-
@Disabled("Retire cette annotation pour activer le test")
60+
// @Disabled("Retire cette annotation pour activer le test")
6361
@Test
6462
void l_annee_2028_est_bissextile() {
6563
assertThat(AnneesBissextiles.estBissextile(2028)).isTrue();
6664
}
6765

68-
// ========= Tests 7 à 8 : régression, années divisibles par 4 dans d'autres siècles =========
66+
// ========= Tests 7 à 8 : régression, années divisibles par 4 dans d'autres
67+
// siècles =========
6968

70-
@Disabled("Retire cette annotation pour activer le test")
69+
// @Disabled("Retire cette annotation pour activer le test")
7170
@Test
7271
void l_annee_1996_est_bissextile() {
7372
assertThat(AnneesBissextiles.estBissextile(1996)).isTrue();
7473
}
7574

76-
@Disabled("Retire cette annotation pour activer le test")
75+
// @Disabled("Retire cette annotation pour activer le test")
7776
@Test
7877
void l_annee_1804_est_bissextile() {
7978
assertThat(AnneesBissextiles.estBissextile(1804)).isTrue();
8079
}
8180

8281
// ========= Tests 9 à 10 : exception "divisible par 100" =========
8382

84-
@Disabled("Retire cette annotation pour activer le test")
83+
// @Disabled("Retire cette annotation pour activer le test")
8584
@Test
8685
void l_annee_1900_n_est_pas_bissextile() {
8786
// 1900 est divisible par 4 ET par 100 : l'exception de 100 l'emporte.
8887
assertThat(AnneesBissextiles.estBissextile(1900)).isFalse();
8988
}
9089

91-
@Disabled("Retire cette annotation pour activer le test")
90+
// @Disabled("Retire cette annotation pour activer le test")
9291
@Test
9392
void l_annee_1700_n_est_pas_bissextile() {
9493
assertThat(AnneesBissextiles.estBissextile(1700)).isFalse();
9594
}
9695

97-
// ========= Tests 11 à 12 : exception de l'exception "divisible par 400" =========
96+
// ========= Tests 11 à 12 : exception de l'exception "divisible par 400"
97+
// =========
9898

99-
@Disabled("Retire cette annotation pour activer le test")
99+
// @Disabled("Retire cette annotation pour activer le test")
100100
@Test
101101
void l_annee_2000_est_bissextile() {
102102
// 2000 est divisible par 4, par 100 ET par 400 : la règle 400 l'emporte.
103103
assertThat(AnneesBissextiles.estBissextile(2000)).isTrue();
104104
}
105105

106-
@Disabled("Retire cette annotation pour activer le test")
106+
// @Disabled("Retire cette annotation pour activer le test")
107107
@Test
108108
void l_annee_1600_est_bissextile() {
109109
assertThat(AnneesBissextiles.estBissextile(1600)).isTrue();
110110
}
111111

112112
// ========= Tests 13 à 14 : régression, cas plus éloignés =========
113113

114-
@Disabled("Retire cette annotation pour activer le test")
114+
// @Disabled("Retire cette annotation pour activer le test")
115115
@Test
116116
void l_annee_2100_n_est_pas_bissextile() {
117117
assertThat(AnneesBissextiles.estBissextile(2100)).isFalse();
118118
}
119119

120-
@Disabled("Retire cette annotation pour activer le test")
120+
// @Disabled("Retire cette annotation pour activer le test")
121121
@Test
122122
void l_annee_2400_est_bissextile() {
123123
assertThat(AnneesBissextiles.estBissextile(2400)).isTrue();

0 commit comments

Comments
 (0)