Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
5555141
Ajout de 9 cas de test pour le calcul de la distance 3D
MoussaDbt Oct 5, 2025
ceea501
Ajout de 4 cas de test pour ameliorer la couverture de GHutility.java…
MoussaDbt Oct 6, 2025
6e98890
ajout dun autre test pour testcommonNode
MoussaDbt Oct 6, 2025
f3e1c6c
Ajout de cas de tests pour la classe Transfers
LaurentPolzini Oct 8, 2025
0d1f2d0
Merge branch 'master' of https://github.com/LaurentPolzini/graphhopper
LaurentPolzini Oct 8, 2025
8e5d437
Ajout java faker pom.xml; correction du test nullPointer de transfers
LaurentPolzini Oct 8, 2025
f75390a
ajout de javadoc pour les deux classse de test
MoussaDbt Oct 9, 2025
39d1d9c
jai suprime les test avec la distance3D car javias cree une classe po…
MoussaDbt Oct 9, 2025
bcb0ae3
Ajout de pitest au projet
MoussaDbt Oct 10, 2025
c4d439d
auccun changement jai juste chenge le nom de de deux methodes. Aucun …
MoussaDbt Oct 10, 2025
7868253
ajout rapport
LaurentPolzini Oct 10, 2025
d78f772
Merge branch 'master' of github.com:LaurentPolzini/graphhopper
LaurentPolzini Oct 10, 2025
a560cba
configuration du github action
MoussaDbt Nov 13, 2025
ab8cd0b
workflow initial
MoussaDbt Nov 13, 2025
e66d32f
ajout de la verification des scores
MoussaDbt Nov 13, 2025
35424f4
ajout de la verification des scores
MoussaDbt Nov 13, 2025
be5d6c4
ajout de la verification des scores
MoussaDbt Nov 13, 2025
5fbe4b2
ajout de la verification des scores
MoussaDbt Nov 13, 2025
4fd8984
ajout de la verification des scores
MoussaDbt Nov 13, 2025
73ed2a7
ajout de la verification des scores
MoussaDbt Nov 13, 2025
6d95849
ajout de la verification des scores
MoussaDbt Nov 13, 2025
a67a53d
verification de la logique pour le build
MoussaDbt Nov 13, 2025
11ac7f5
correction sur le le telechargement des artefacts (utilisation d'un g…
MoussaDbt Nov 13, 2025
9553db1
ajout d'un echo pour facilite le debugging lors de la comparaison ent…
MoussaDbt Nov 13, 2025
2270341
ajout d un test pour la classe Downloader (core)
MoussaDbt Nov 15, 2025
a5f9f31
aajout de mockito
MoussaDbt Nov 15, 2025
6270ebb
Ajout github action rick roll + failing test
LaurentPolzini Nov 17, 2025
903e687
continue if error
LaurentPolzini Nov 17, 2025
3def7c0
hmm, trying to work things through
LaurentPolzini Nov 17, 2025
1e7fc58
nouveaux test des ajouts dans le workflow
LaurentPolzini Nov 18, 2025
4ad0703
test apres internal server error to see if one can get rick rolled
LaurentPolzini Nov 19, 2025
6cbb391
rick roll ascii art
LaurentPolzini Nov 19, 2025
66e1122
continueing after test errors doesn't seem to work, back to basics
LaurentPolzini Nov 19, 2025
feb9914
nouvel affichage
LaurentPolzini Nov 19, 2025
b93110f
oops
LaurentPolzini Nov 19, 2025
83fa4ca
new path
LaurentPolzini Nov 19, 2025
5357e0d
will all the test run and rick astley show ?
LaurentPolzini Nov 19, 2025
9e2d747
are we done?
MoussaDbt Nov 19, 2025
d61dab1
j'ai retire ton ga juste pour identifier le probleme je vais le remettre
MoussaDbt Nov 19, 2025
e99f769
retour aux sources
LaurentPolzini Nov 19, 2025
25e7b7b
ton build avec le rickroll
MoussaDbt Nov 19, 2025
4cb8651
echec du build (baisse du score de mutation dans le module core)
MoussaDbt Nov 19, 2025
12c52dc
retour a la normale
MoussaDbt Nov 19, 2025
ed8cdfa
documentation sur le workflow
MoussaDbt Nov 19, 2025
ab94bf0
creation rapport md
LaurentPolzini Nov 20, 2025
4447062
hmm ca push pas ?
LaurentPolzini Nov 20, 2025
0d0e33d
debut du rapport
LaurentPolzini Nov 20, 2025
1407a55
suite du rapport
LaurentPolzini Nov 20, 2025
8e47bc3
rapport pdf tache3.pdf
MoussaDbt Nov 21, 2025
fcbe660
rapport pdf tache3.pdf
MoussaDbt Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,124 @@ jobs:
- name: Build ${{ matrix.java-version }}
run: mvn -B clean test

- name: Rick Roll On Fail
if: failure()
run: |
echo "![RickRoll](https://media.giphy.com/media/Vuw9m5wXviFIQ/giphy.gif)"
cat .github/workflows/rickroll.txt


# Build complet du projet sans exécuter les tests
# On compile tous les modules Maven (-DskipTests) sans lancer les tests.
- name: build tous les modules
run: mvn clean install -DskipTests



# Télécharger l'ancien score de mutation du module 'core'
# On télécharge l'artefact du précédent pipeline afin de récupérer
# le score de mutation précédent (Prec_Score). Cela permet de comparer
# le nouveau score avec l’ancien.
#
# workflow_search: true → cherche dans les workflows précédents
# workflow_conclusion: success → seulement les workflows réussis
# continue-on-error: true → évite les erreurs lors du tout premier run,
# où aucun artefact n’existe encore.
- name: Download core-artefact
id: download-core-artifact
uses: dawidd6/action-download-artifact@v11
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
workflow_search: true
workflow_conclusion: success
name: core-artefact-${{ matrix.java-version }}
path: core-artefact/
continue-on-error: true

# Exécuter PIT Mutation Testing sur le module 'core'
# On génère le rapport PIT pour le module core.
# On extrait le pourcentage des mutations "Killed" (score PIT).
# On compare le score actuel avec le score stocké dans l’artefact
# précédent.
# Si le score a baissé -> échec du workflow (exit 1).
#
# Le fichier "Prec_Score" est mis à jour.
- name: Run pitest on core module
run: |
mvn clean test-compile -pl core org.pitest:pitest-maven:mutationCoverage | tee core/core-score

Core_Score=$(grep -A15 Statistics core/core-score | grep Killed | grep -oP '\(\K[0-9]+')
echo "le score de mutation pour le module core est $Core_Score%"

if [ -f core-artefact/Prec_Score ]; then
Prev_Score=$(cat core-artefact/Prec_Score)
else
Prev_Score=0
fi

if [ "$Core_Score" -lt "$Prev_Score" ]; then
echo "Le score de mutation dans le module core a baisse $Prev_Score% ---> $Core_Score%"
exit 1
fi
echo "ancien score: $Prev_Score%, nouveau_score: $Core_Score%"
echo "$Core_Score" > ./Prec_Score



# Upload du nouveau score PIT pour le module core
# Cela permet d’utiliser ce score lors du prochain pipeline.
- name: 'Upload precedent core-score'
uses: actions/upload-artifact@v4
with:
name: core-artefact-${{ matrix.java-version }}
path: ./Prec_Score



# Télécharger l’ancien score du module reader-gtfs
- name: Download reader-artefact
id: download-reader-artifact
uses: dawidd6/action-download-artifact@v11
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
workflow_search: true
workflow_conclusion: success
name: reader-artefact-${{ matrix.java-version }}
path: reader-artefact/
continue-on-error: true



# Exécuter PIT sur le module reader-gtfs
- name: Run pitest on reader-gtfs module
run: |
mvn clean test-compile -pl reader-gtfs org.pitest:pitest-maven:mutationCoverage | tee reader-gtfs/reader-score

Reader_Score=$(grep -A15 Statistics reader-gtfs/reader-score | grep Killed | grep -oP '\(\K[0-9]+')
echo "le score de mutation pour le module reader-gtfs est $Reader_Score%"

if [ -f reader-artefact/Prec_Score_gtfs ]; then
Prev_Score=$(cat reader-artefact/Prec_Score_gtfs)
else
Prev_Score=0
fi

if [ "$Reader_Score" -lt "$Prev_Score" ]; then
echo "Le score de mutation dans le module core a baisse $Prev_Score% ---> $Reader_Score%"
exit 1
fi

echo "ancien score: $Prev_Score%, nouveau_score: $Reader_Score%"
echo "$Reader_Score" > ./Prec_Score_gtfs


# Upload du nouveau score PIT reader-gtfs
- name: 'Upload preccedent reader-score'
uses: actions/upload-artifact@v4
with:
name: reader-artefact-${{ matrix.java-version }}
path: ./Prec_Score_gtfs


25 changes: 25 additions & 0 deletions .github/workflows/rickroll.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⡿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣻⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⡽⣯⣻⣻⡽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣻⣻
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⡿⣿⣿⣿⣿⣿⣿⡿⣻⣻⣻⣻⣻⣻⡽⣯⣟⢷⠍⠟⠉⠛⢿⢿⣻⣻⢿⣿⣿⣯⣻⡽⣯⣻⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⢯
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣻⣻⣻⡟⡅⠀⠀⠀⠠⠀⠀⠆⡹⣻⣻⡽⣯⣻⡽⣯⣻⡽⣻⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣻⣻
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣿⡟⡛⡜⡜⣎⢦⢶⣖⡴⡀⠠⣿⣿⣿⣟⣟⣟⣟⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣻⣻⣻
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣻⢆⢭⢎⢎⢞⡝⣝⡽⡽⡣⢂⣟⢯⢯⢯⣿⣻⣻⡽⣻⡽⣻⣻⣿⣿⣿⣿⣿⣿⣿⡿⣟⣿⣿⣿⣿⣻
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣟⢧⡒⡔⢆⢯⢎⠚⡜⡇⣼⣿⣿⣯⣻⣻⣻⣻⢯⣿⣿⣻⣻⣻⣻⢿⣿⣿⣿⣿⡿⣻⣻⣻⣟⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⢹⢧⢣⢣⠡⡋⡯⣫⢯⡹⣹⣿⣿⣿⣿⣯⣻⣻⣻⣿⣿⣻⣻⣻⣿⣟⣟⢿⣿⣿⣿⣿⣻⢿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠧⢣⢢⢌⣍⡹⡽⣹⣽⣿⣿⣿⣿⣿⡽⣯⣻⢯⣻⢯⣻⣻⣿⣿⣿⣿⣻⣻⣻⣻⢿⢿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⡽⣍⢎⢎⢝⢏⢏⣝⢿⣿⣿⣿⣿⣿⣿⣻⡽⣯⣻⣻⣿⣿⣟⢿⣿⢿⣻⣻⣿⣿⢿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣟⣟⣟⡜⡜⡜⡝⡭⣫⢫⠂⢫⣿⣿⣿⣟⢯⣻⣻⣻⡽⣻⣿⣿⣿⣟⣿⣿⣿⣻⣟⣟⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⢿⡿⣿⢿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⡿⡽⡻⡿⣇⢣⢣⠱⡱⡱⣽⣿⠀⠀⠀⠀⠐⢉⠍⡛⢿⢯⣻⣻⣿⣿⡿⣿⣿⣿⣿⣟⣟⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣟⢿⣿⣿⣿⡿⣿⣿⣟⢿⣻⣻⡿⣏⢋⠀⠀⠀⣹⣻⡇⢣⠱⣥⣻⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣻⣿⣿⣿⣟⣟⣟⡽⣻⣿⡿⡿⣿⣿⣿
⣿⣿⣿⣿⣿⢿⣿⣿⣿⢿⣻⣿⢿⣿⣿⢿⣻⣻⣻⡃⠀⠀⠀⠀⠀⠀⠠⠠⡣⢢⠱⡉⠙⠛⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣻⡽⣻⣿⢯⣻⣿⣿⢯⣻⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⢿⣻⣻⣿⣟⣟⣟⣿⣿⣿⣿⣿⡿⣟⣟⠄⠀⠀⠀⠀⠀⠀⠀⢀⢆⡑⠡⠉⠋⠖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣻⢯⣻⡽⣻⣻⡿⣯⢿⣿⣿⣿⣿⣿
⣿⣻⣟⣟⣿⣿⣿⣿⣟⣟⣟⣟⣿⣿⣿⣿⣟⣟⡽⡄⠀⠀⠀⠀⠀⠀⠀⢀⠁⣯⠚⠹⠶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣻⢯⢯⣻⣿⣿⣻⣻⣻⣿⣿⣿⣿⣿
⣿⣟⢿⣿⣿⣿⣿⣿⣻⣿⡿⣻⣻⣿⣿⣿⢿⣻⢯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⣟⠖⡖⡤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⢿⣻⣿⣻⣿⣿⣿⣿⣿⣻⢯⣻⣻⣻
⣿⣻⣻⣿⣿⣿⣿⣻⣽⣿⣿⣟⣟⢿⣿⣿⡿⣻⣻⠀⠀⠀⠀⠀⠀⠀⠀⠀⢦⢢⣠⣀⠀⠀⠀⠀⠩⡛⡝⡜⡖⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣻⣻⣻⣿⣿⡿⣻⣿⣿⣻⣻⣿⣿⡿⣿⣻⣻⣻⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⡜⠈⠁⠀⠀⠀⠀⠀⠌⣌⢎⡜⡜⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣻⣿⣿⡿⣟⢿⣿⣿⣿
⣟⣿⣿⣿⡽⡽⡽⣻⣹⡽⣿⣿⣿⣻⣻⣻⣻⡽⣻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢢⠣⠒⠀⠀⠀⠀⠀⠀⠎⢎⢎⢎⢎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣟⡽⣿⣿⣻⣻⣻⢿⣿⣿
⣿⣿⢿⣿⣯⣫⣏⢯⣫⣿⣿⣿⣿⣟⣟⣟⣟⡽⡽⠀⡀⠀⠀⠀⠀⢀⢀⠀⠰⡰⠤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡝⡽⡽⣿⣿⣿⣻⡝⡽
⣯⣯⣯⣯⢯⣫⢫⣻⡿⣻⣿⣿⣿⣿⣿⣻⡽⡽⣭⠂⠀⡰⡱⠡⠢⢂⠆⠀⢠⠰⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢯⢫⣫⡿⣻⣿⣿⣿⣻⡹
⡿⡿⣻⣻⣻⢭⣚⢧⢫⣻⣿⣿⡿⡽⡽⡽⡽⣹⣝⢇⠄⠀⠀⠄⠄⠄⡐⠀⠄⡐⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡝⣝⡽⣹⢽⢯⡻⣻⣟⢯⢫⣚⣟⣟⣟⣟⣟⣟⡝
⣯⣻⡽⣯⣻⡜⡵⡽⣎⢭⣻⡝⡽⣽⡽⣝⣝⣝⡝⣗⢭⢎⠀⠀⠂⠂⠀⠀⠀⡐⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣹⣝⣝⡝⣝⡽⡽⡹⣚⠵⡭⢯⢯⢯⣻⡽⡽⣣
⣟⣟⡽⣯⢯⢎⢎⢯⣏⡗⡝⣝⡽⣻⢯⣫⢫⢫⣫⣻⢯⡳⡱⡱⡱⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡝⡝⡝⣝⡝⡝⡭⣫⢫⢭⣚⣝⣝⣝⡽⣹⣹⢧
⢏⠯⢫⢫⢫⢪⢎⢯⢏⠳⡹⡹⣻⡿⡯⣫⢫⡹⡹⡽⡽⡹⡸⡜⡄⠀⠀⢀⢂⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡭⡭⣫⡹⡹⡭⣫⢫⢫⣚⡜⡝⡝⣝⣝⢽⡹⡭
21 changes: 21 additions & 0 deletions core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,27 @@
<failOnUnableToExtractRepoInfo>false</failOnUnableToExtractRepoInfo>
</configuration>
</plugin>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.20.2</version>
<configuration>
<targetClasses>
<param>com.graphhopper.util.GHUtility</param>
<param>com.graphhopper.util.ArrayUtil</param>
</targetClasses>
<targetTests>
<param>com.graphhopper.util.GHUtilityTest</param>
<param>com.graphhopper.util.ArrayUtilTest</param>
</targetTests>
<mutationThreshold>0</mutationThreshold>
<outputFormats>
<param>HTML</param>
<param>XML</param>
</outputFormats>
<threads>4</threads>
</configuration>
</plugin>
</plugins>

<!-- make version available at runtime via version file -->
Expand Down
110 changes: 110 additions & 0 deletions core/src/test/java/com/graphhopper/util/ArrayUtilTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,13 @@
import com.carrotsearch.hppc.IntArrayList;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;

import static com.carrotsearch.hppc.IntArrayList.from;
import static com.graphhopper.util.ArrayUtil.*;
import static org.junit.jupiter.api.Assertions.*;

class ArrayUtilTest {
Expand Down Expand Up @@ -178,4 +181,111 @@ public void testMerge() {
int[] b = {3, 7, 9, 10, 11, 12, 15, 20, 21, 26};
assertEquals(from(2, 3, 6, 7, 8, 9, 10, 11, 12, 15, 20, 21, 26), from(ArrayUtil.merge(a, b)));
}




/**
* TestSublist0
* Vérifie qu'une liste vide n a pas de sous liste.
* tentative d’extraction d’une sous liste de la liste vide.
* une erreur est attendue.
*/
@Test
public void TestSublist0() {
int[] a = {};
IntArrayList aj = IntArrayList.from(a);
assertThrows(Error.class, () -> subList(aj, 3, 5));

}

/**
* TestSublist1
* Vérifie que le tableau retournee est correct.
* tentative d’extraction d’une sous liste d'une liste donnee
* le tableau b1 est attendu
*/
@Test
public void TestSublist1() {
int[] a = {1,2,3,4,5,6,7,8,9,10};
int[] b = {4,5};
IntArrayList a1 = IntArrayList.from(a);
IntArrayList b1 = IntArrayList.from(b);
assertEquals(b1, subList(a1, 3, 5));
}


/**
* TestSublist2
* Vérifie que le tableau retournee est correct.
* tentative d’extraction d’une sous liste etant donne que fromIndex et toIndex sont egaux
* le tableau b1 est attendu
*/
@Test
public void TestSublist2() {
int[] a = {1,2,3,4,5,6,7,8,9,10};
int[] b = {};
IntArrayList a1 = IntArrayList.from(a);
IntArrayList b1 = IntArrayList.from(b);
assertEquals(b1, subList(a1, 0, 0));
}

/**
* testApplyOrder2
* Vérifie si le tableau (order)passe en argument est plus grand que le premier tableau (a) une exeption est levee.
* un IllegalArgumentException est attendue.
*/
@Test
public void testApplyOrder2() {
int[] a = {1,2,3,4,5,6,7,8,9,10};
int[] b = {1,2,3,4,5,6,7,8,9,10,11};
assertThrows(IllegalArgumentException.class, () -> applyOrder(a, b));
}


/**
* calcSortOrder2
* Vérifie si le parametre (length)passe en argument est plus grand que la taille des tableaux une exeption est levee.
* un IllegalArgumentException est attendue.
*/
@Test
public void testCalcSortOrder2(){
int[] a = {1,2,3,4,5,6,7,8,9,10};
int[] b = {12,42,387,41,45,69,71,58,98,10};
assertThrows(IllegalArgumentException.class, () -> calcSortOrder(a, b, 11));

}


/**
* calcSortOrder3
* Vérifie que si les deux tableaux sont de tailles inegales une exeption est levee.
* un IllegalArgumentException est attendue.
*/
@Test
public void testCalcSortOrder3(){
int[] a = {1,2,3,4,5,6,7,8,9,10,11};
int[] b = {12,42,387,41,45,69,71,58,98,10};
IntArrayList a1 = IntArrayList.from(a);
IntArrayList b1 = IntArrayList.from(b);
assertThrows(IllegalArgumentException.class, () -> calcSortOrder(a1, b1));

}



/**
* TestremoveConsecutiveDuplicates
* Vérifie que end est inferieur a zero, une exeption est levee.
* un IllegalArgumentException est attendue.
*/
@Test
public void TestremoveConsecutiveDuplicates(){
int[] a = {1,2,3,4,5,6,7,8,9,10};
int b = -1;
assertThrows(IllegalArgumentException.class, () -> ArrayUtil.removeConsecutiveDuplicates(a, b));

}


}
44 changes: 44 additions & 0 deletions core/src/test/java/com/graphhopper/util/DownloaderTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.graphhopper.util;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

import java.io.*;
import java.net.HttpURLConnection;
import static org.mockito.Mockito.*;
import com.graphhopper.util.Downloader.*;

@ExtendWith(MockitoExtension.class)
public class DownloaderTest {

@InjectMocks
Downloader downloader;

@Mock
HttpURLConnection connection;


/**
* fetchTestNullInputStream
* Vérifie que la méthode fetch lance une IOException lorsque
* getInputStream() retourne null quand readErrorStreamNoException = false
* Données choisies : mock de HttpURLConnection qui renvoie null quand on fait appel
* a getInputStream()
* La sortie attendue est une IOException
*/
@Test
public void fetchTestNullInputStream(){
boolean readErrorStreamNoException = false;
try {
when(connection.getInputStream()).thenReturn(null);
assertThrows(IOException.class, ()-> downloader.fetch(connection, readErrorStreamNoException));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
Loading