From 6081dbc7b8ee4f8f97ca9b1f5f0c95790e570171 Mon Sep 17 00:00:00 2001 From: Hugo Gimbert Date: Thu, 24 Oct 2024 00:26:02 +0200 Subject: [PATCH] fixed tests + stats bacs pros --- .../migration/V1_27__reset_table_formation_voeux.sql | 2 ++ .../gouv/monprojetsup/data/model/psup/PsupData.java | 4 ++-- .../data/model/stats/PsupStatistiques.java | 1 - .../data/model/stats/StatistiquesAdmisParBac.java | 11 ++++++----- .../monprojetsup/data/etl/port/FormationsMpsTests.kt | 4 +++- .../suggestions/algo/AffinityEvaluator.java | 4 +--- 6 files changed, 14 insertions(+), 12 deletions(-) create mode 100644 app/back/src/main/resources/db/migration/V1_27__reset_table_formation_voeux.sql diff --git a/app/back/src/main/resources/db/migration/V1_27__reset_table_formation_voeux.sql b/app/back/src/main/resources/db/migration/V1_27__reset_table_formation_voeux.sql new file mode 100644 index 000000000..64c2dfaf2 --- /dev/null +++ b/app/back/src/main/resources/db/migration/V1_27__reset_table_formation_voeux.sql @@ -0,0 +1,2 @@ + +TRUNCATE TABLE ref_formation CASCADE; diff --git a/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/psup/PsupData.java b/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/psup/PsupData.java index 39fad0aee..5ea6560ba 100644 --- a/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/psup/PsupData.java +++ b/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/psup/PsupData.java @@ -112,7 +112,8 @@ public Collection getLasFlCodes() { public AdmissionStats buildStats() { - val bacsKeys = getBacs().stream().map(Bac::key).collect(Collectors.toSet()); + val bacsKeys = new HashSet<>(getBacs().stream().map(Bac::key).toList()); + bacsKeys.add(TOUS_BACS_CODE_MPS); val groups = getGtaToMpsIdMapping(); StatistiquesAdmisParGroupe statsAdmisParGroupe @@ -218,7 +219,6 @@ public void cleanupAfterUpdate() { filActives.retainAll(formations().filieres.keySet()); //do not restrict to fil actives because we want to keep apprentissage formations().cleanup(); - Set bacsActifs = new HashSet<>(stats.getBacsWithAtLeastNdAdmis(MIN_NB_ADMIS_FOR_BAC_ACTIF)); bacsActifs.add(TOUS_BACS_CODE_MPS); this.stats.restrictToBacs(bacsActifs); diff --git a/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/stats/PsupStatistiques.java b/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/stats/PsupStatistiques.java index 669e3cd24..2ea4e51c0 100644 --- a/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/stats/PsupStatistiques.java +++ b/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/stats/PsupStatistiques.java @@ -19,7 +19,6 @@ public class PsupStatistiques implements Serializable { public static final String TOUS_GROUPES_CODE = ""; - public static final String TOUS_BACS_CODE_LEGACY = ""; public static final String TOUS_BACS_CODE_MPS = "NC"; public static final int PRECISION_PERCENTILES = 40; diff --git a/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/stats/StatistiquesAdmisParBac.java b/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/stats/StatistiquesAdmisParBac.java index c1ae5e866..8670eaddc 100644 --- a/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/stats/StatistiquesAdmisParBac.java +++ b/app/etl/etl-common/src/main/java/fr/gouv/monprojetsup/data/model/stats/StatistiquesAdmisParBac.java @@ -25,19 +25,20 @@ public void set(Map> stringMapMap) { public void minimize() { parBac.values().forEach(StatistiquesAdmisParMatiere::minimize); - StatistiquesAdmisParMatiere s1 = parBac.get(PsupStatistiques.TOUS_BACS_CODE_LEGACY); - StatistiquesAdmisParMatiere s2 = parBac.get(PsupStatistiques.TOUS_BACS_CODE_MPS); - StatistiquesAdmisParMatiere s = s2 != null ? s2 : s1; + StatistiquesAdmisParMatiere s = parBac.get(PsupStatistiques.TOUS_BACS_CODE_MPS); if(s == null) { parBac.clear(); } else { - s.parMatiere().keySet().removeIf( m -> !m.equals(PsupStatistiques.MATIERE_MOYENNE_GENERALE_CODE) && !m.equals(PsupStatistiques.MATIERE_MOYENNE_BAC_CODE)); + s.parMatiere().keySet().removeIf( + m -> !m.equals(PsupStatistiques.MATIERE_MOYENNE_GENERALE_CODE) + && !m.equals(PsupStatistiques.MATIERE_MOYENNE_BAC_CODE) + ); Statistique ss = s.parMatiere().get(PsupStatistiques.MATIERE_MOYENNE_GENERALE_CODE); if (ss == null) { parBac.clear(); } else { if (ss.nb() <= 3) { - parBac.keySet().removeIf( b -> !b.equals(PsupStatistiques.TOUS_BACS_CODE_LEGACY) && !b.equals(PsupStatistiques.TOUS_BACS_CODE_MPS)); + parBac.keySet().removeIf( b -> !b.equals(PsupStatistiques.TOUS_BACS_CODE_MPS)); } } } diff --git a/app/etl/etl-updatedb/src/test/kotlin/fr/gouv/monprojetsup/data/etl/port/FormationsMpsTests.kt b/app/etl/etl-updatedb/src/test/kotlin/fr/gouv/monprojetsup/data/etl/port/FormationsMpsTests.kt index bcbcf3dd4..1c4ea94a6 100644 --- a/app/etl/etl-updatedb/src/test/kotlin/fr/gouv/monprojetsup/data/etl/port/FormationsMpsTests.kt +++ b/app/etl/etl-updatedb/src/test/kotlin/fr/gouv/monprojetsup/data/etl/port/FormationsMpsTests.kt @@ -3,6 +3,7 @@ package fr.gouv.monprojetsup.data.etl.port import fr.gouv.monprojetsup.data.Constants.gFlCodToMpsId import fr.gouv.monprojetsup.data.Constants.gFrCodToMpsId import fr.gouv.monprojetsup.data.TestData +import fr.gouv.monprojetsup.data.model.stats.PsupStatistiques import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test @@ -145,7 +146,8 @@ class FormationsMpsTests : DataPortTest() { @Test fun `tous les bacs de toutes les stats sont connus`() { - val keys = mpsDataPort.getBacs().map { b -> b.key } + val keys = HashSet(mpsDataPort.getBacs().map { b -> b.key }) + keys.add(PsupStatistiques.TOUS_BACS_CODE_MPS) val statsKeys = mpsDataPort.getStatsFormation().flatMap { it.value.nbAdmisParBac.keys } assertThat(keys).containsAll(statsKeys) } diff --git a/app/suggestions/suggestions-algo/src/main/java/fr/gouv/monprojetsup/suggestions/algo/AffinityEvaluator.java b/app/suggestions/suggestions-algo/src/main/java/fr/gouv/monprojetsup/suggestions/algo/AffinityEvaluator.java index cb169054f..8583bac05 100644 --- a/app/suggestions/suggestions-algo/src/main/java/fr/gouv/monprojetsup/suggestions/algo/AffinityEvaluator.java +++ b/app/suggestions/suggestions-algo/src/main/java/fr/gouv/monprojetsup/suggestions/algo/AffinityEvaluator.java @@ -32,7 +32,6 @@ import static fr.gouv.monprojetsup.data.Constants.isFiliere; import static fr.gouv.monprojetsup.data.Constants.isMetier; -import static fr.gouv.monprojetsup.data.model.stats.PsupStatistiques.TOUS_BACS_CODE_LEGACY; import static fr.gouv.monprojetsup.data.model.stats.PsupStatistiques.TOUS_BACS_CODE_MPS; import static fr.gouv.monprojetsup.suggestions.algo.Config.ADMISSIBILITY_10; import static fr.gouv.monprojetsup.suggestions.algo.Config.ADMISSIBILITY_25; @@ -101,8 +100,7 @@ public AffinityEvaluator(ProfileDTO pf, Config cfg, AlgoSuggestions algo, boolea this.algo = algo; String pfBac = pf.bac(); - if(pfBac == null) pfBac = TOUS_BACS_CODE_MPS; - if(pfBac.equals(TOUS_BACS_CODE_LEGACY)) pfBac = TOUS_BACS_CODE_MPS; + if(pfBac == null || pfBac.isBlank()) pfBac = TOUS_BACS_CODE_MPS; this.bac = pfBac; try {