|
From: <de...@us...> - 2014-06-10 22:27:25
|
Revision: 8762
http://sourceforge.net/p/fudaa/svn/8762
Author: deniger
Date: 2014-06-10 22:27:20 +0000 (Tue, 10 Jun 2014)
Log Message:
-----------
CRUE-648
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioRunCleaner.java
trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidateAndRebuildProfilSection.java
trunk/soft/fudaa-crue/crue-validation/src/test/java/org/fudaa/dodico/crue/validation/ValidateAndRebuildProfilSectionTest.java
trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java
trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiUiController.java
Added Paths:
-----------
trunk/soft/fudaa-crue/crue-validation/src/test/resources/
trunk/soft/fudaa-crue/crue-validation/src/test/resources/KiPlantePas_c9.dc
trunk/soft/fudaa-crue/crue-validation/src/test/resources/KiPlantePas_c9.dh
Modified: trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioRunCleaner.java
===================================================================
--- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioRunCleaner.java 2014-06-09 21:22:31 UTC (rev 8761)
+++ trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioRunCleaner.java 2014-06-10 22:27:20 UTC (rev 8762)
@@ -49,7 +49,13 @@
return toDelete;
}
File dirOfRuns = projet.getInfos().getDirOfRuns();
+ if (dirOfRuns == null) {
+ return toDelete;
+ }
File[] listFilesScenarios = dirOfRuns.listFiles();
+ if (listFilesScenarios == null) {
+ return toDelete;
+ }
for (File scenarioFile : listFilesScenarios) {
if (scenarioFile.isDirectory()) {
if (expectedScenarioDir.contains(scenarioFile.getAbsolutePath())) {
Modified: trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidateAndRebuildProfilSection.java
===================================================================
--- trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidateAndRebuildProfilSection.java 2014-06-09 21:22:31 UTC (rev 8761)
+++ trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidateAndRebuildProfilSection.java 2014-06-10 22:27:20 UTC (rev 8762)
@@ -590,7 +590,7 @@
// tous les lits actifs sont parcourus dans l'ordre et le dernier point rencontré avec la cote la plus basse est choisi.
CrueConfigMetierLitNomme litNomme = props.getLitNomme();
for (LitNommeIndexed litNommeIndexed : litNommes) {
- if (litNomme.isActif(litNommeIndexed.getLitNomme())) {
+ if (litNommeIndexed.getLitNumerotesSize() > 0 && litNomme.isActif(litNommeIndexed.getLitNomme())) {
for (int i = litNommeIndexed.getFirstIdx(); i <= litNommeIndexed.getlastIdx(); i++) {
double z = section.getPtProfil().get(i).getZ();
if (foundIdx < 0 || z <= minZ) {
Modified: trunk/soft/fudaa-crue/crue-validation/src/test/java/org/fudaa/dodico/crue/validation/ValidateAndRebuildProfilSectionTest.java
===================================================================
--- trunk/soft/fudaa-crue/crue-validation/src/test/java/org/fudaa/dodico/crue/validation/ValidateAndRebuildProfilSectionTest.java 2014-06-09 21:22:31 UTC (rev 8761)
+++ trunk/soft/fudaa-crue/crue-validation/src/test/java/org/fudaa/dodico/crue/validation/ValidateAndRebuildProfilSectionTest.java 2014-06-10 22:27:20 UTC (rev 8762)
@@ -24,6 +24,8 @@
import org.fudaa.dodico.crue.metier.emh.LitNumerote;
import org.fudaa.dodico.crue.metier.helper.DonPrtHelper;
import org.fudaa.dodico.crue.metier.helper.EtiquetteIndexed;
+import org.fudaa.dodico.crue.metier.helper.LitNommeIndexed;
+import org.fudaa.dodico.crue.metier.helper.LitNumeroteIndex;
import org.fudaa.dodico.crue.test.AbstractTestCase;
/**
@@ -81,11 +83,13 @@
assertDoubleEquals(66d, axeHyd.getPoint().getXt());
assertDoubleEquals(0.5d, axeHyd.getPoint().getZ());
ScenarioAutoModifiedState modifiedState = new ScenarioAutoModifiedState();
- CrueIOResu<List<EtiquetteIndexed>> etiquettesAsIndexed = new ValidateAndRebuildProfilSection(CrueConfigMetierLoaderDefaultTest.DEFAULT, modifiedState).getEtiquettesAsIndexed(profilSection);
+ CrueIOResu<List<EtiquetteIndexed>> etiquettesAsIndexed = new ValidateAndRebuildProfilSection(CrueConfigMetierLoaderDefaultTest.DEFAULT,
+ modifiedState).getEtiquettesAsIndexed(profilSection);
assertTrue(etiquettesAsIndexed.getAnalyse().isEmpty());
List<EtiquetteIndexed> etiquettesList = etiquettesAsIndexed.getMetier();
assertEquals(2, etiquettesList.size());
- assertEquals(CrueConfigMetierLoaderDefaultTest.DEFAULT.getLitNomme().getEtiquetteThalweg(), etiquettesList.get(0).getEtiquette().getTypeEtiquette());
+ assertEquals(CrueConfigMetierLoaderDefaultTest.DEFAULT.getLitNomme().getEtiquetteThalweg(), etiquettesList.get(0).getEtiquette().
+ getTypeEtiquette());
assertEquals(5, etiquettesList.get(0).getIdx());
assertEquals(CrueConfigMetierLoaderDefaultTest.DEFAULT.getLitNomme().getEtiquetteAxeHyd(), etiquettesList.get(1).getEtiquette().getTypeEtiquette());
assertEquals(4, etiquettesList.get(1).getIdx());
@@ -99,7 +103,8 @@
thalweg.setPoint(profilSection.getPtProfil().get(0));
profilSection.setEtiquettes(Arrays.asList(thalweg));
ScenarioAutoModifiedState modifiedState = new ScenarioAutoModifiedState();
- CtuluLog log = new ValidateAndRebuildProfilSection(CrueConfigMetierLoaderDefaultTest.DEFAULT, modifiedState).validateAndRebuildDonPrtGeoProfilSection(profilSection);
+ CtuluLog log = new ValidateAndRebuildProfilSection(CrueConfigMetierLoaderDefaultTest.DEFAULT, modifiedState).
+ validateAndRebuildDonPrtGeoProfilSection(profilSection);
assertTrue(log.containsSevereError());
CtuluLogRecord record = log.getRecords().get(0);
assertEquals("validate.thalweg.NotInLitMineur.Fente", record.getMsg());
@@ -108,7 +113,8 @@
axeHyd.setTypeEtiquette(CrueConfigMetierLoaderDefaultTest.DEFAULT.getLitNomme().getEtiquetteAxeHyd());
axeHyd.setPoint(profilSection.getPtProfil().get(0));
profilSection.setEtiquettes(Arrays.asList(thalweg, axeHyd));
- log = new ValidateAndRebuildProfilSection(CrueConfigMetierLoaderDefaultTest.DEFAULT, modifiedState).validateAndRebuildDonPrtGeoProfilSection(profilSection);
+ log = new ValidateAndRebuildProfilSection(CrueConfigMetierLoaderDefaultTest.DEFAULT, modifiedState).validateAndRebuildDonPrtGeoProfilSection(
+ profilSection);
assertTrue(log.containsSevereError());
assertEquals(2, log.getRecords().size());
record = log.getRecords().get(0);
@@ -126,13 +132,28 @@
etiquettes.add(etiquettes.get(0));//on definit l'étiquette thalweg 2 fois.
profilSection.setEtiquettes(etiquettes);
ScenarioAutoModifiedState modifiedState = new ScenarioAutoModifiedState();
- CtuluLog log = new ValidateAndRebuildProfilSection(CrueConfigMetierLoaderDefaultTest.DEFAULT, modifiedState).validateAndRebuildDonPrtGeoProfilSection(profilSection);
+ CtuluLog log = new ValidateAndRebuildProfilSection(CrueConfigMetierLoaderDefaultTest.DEFAULT, modifiedState).
+ validateAndRebuildDonPrtGeoProfilSection(profilSection);
assertTrue(log.containsSevereError());
CtuluLogRecord record = log.getRecords().get(0);
assertEquals("validate.etiquette.definedSeveralTimes", record.getMsg());
assertEquals(CrueConfigMetierLoaderDefaultTest.DEFAULT.getLitNomme().getEtiquetteThalweg().geti18n(), record.getArgs()[0]);
assertEquals(Integer.toString(2), record.getArgs()[1]);
+ }
+ public void testJIRA648KiPlantePas() {
+ final EMHSectionProfil sectionProfil = getSectionProfil("PCC2", "/KiPlantePas_c9.dc", "/KiPlantePas_c9.dh");
+ assertNotNull(sectionProfil);
+ ScenarioAutoModifiedState modifiedState = new ScenarioAutoModifiedState();
+ ValidateAndRebuildProfilSection rebuilder = new ValidateAndRebuildProfilSection(CrueConfigMetierLoaderDefaultTest.DEFAULT, modifiedState);
+ List<LitNommeIndexed> asIndexedData = rebuilder.getAsIndexedData(DonPrtHelper.getProfilSection(sectionProfil)).getMetier();
+ final LitNommeIndexed first = asIndexedData.get(0);
+ final LitNumeroteIndex litNumeroteIndex = first.getLitNumeroteIndex(0);
+ assertEquals("FkSto_K0", litNumeroteIndex.getLitNumerote().getFrotId());
+ int idxStart = litNumeroteIndex.getIdxStart();
+ int idxEnd = litNumeroteIndex.getIdxEnd();
+ assertEquals(0, idxStart);
+ assertEquals(0, idxEnd);
}
protected EMHSectionProfil getSectionProfil() {
@@ -143,9 +164,14 @@
return getSectionProfil("St_PROF2");
}
- private EMHSectionProfil getSectionProfil(final String sectionName) {
+ private static EMHSectionProfil getSectionProfil(final String sectionName) {
+ return getSectionProfil(sectionName, "/crue9/201.dc", "/crue9/201.dh");
+
+ }
+
+ private static EMHSectionProfil getSectionProfil(final String sectionName, String dc, String dh) {
CtuluLog log = new CtuluLog();
- CrueIOResu<CrueData> read = ReadHelper.readModeleAndDefaultORES(log, "/crue9/201.dc", "/crue9/201.dh");
+ CrueIOResu<CrueData> read = ReadHelper.readModeleAndDefaultORES(log, dc, dh);
assertFalse(log.containsErrorOrSevereError());
EMHScenario scenario = read.getMetier().getScenarioData();
assertNotNull(scenario);
Added: trunk/soft/fudaa-crue/crue-validation/src/test/resources/KiPlantePas_c9.dc
===================================================================
--- trunk/soft/fudaa-crue/crue-validation/src/test/resources/KiPlantePas_c9.dc (rev 0)
+++ trunk/soft/fudaa-crue/crue-validation/src/test/resources/KiPlantePas_c9.dc 2014-06-10 22:27:20 UTC (rev 8762)
@@ -0,0 +1,103 @@
+*
+TITRE CrueX - Structuration des donn\xE9es
+TITRE
+TITRE Mod\xE8le de test utilisant une unique branche de Saint-Venant
+TITRE
+TITRE NJB
+*
+*
+* Configuration generale
+ZREF 0.0
+COEFF 1.0 0.75 1
+* DECAL
+R_DECAL 0.2
+* LARG_SEUIL
+R_SLARGE 100.0
+* PDX_MAX
+R_DXMAX 200.0
+* PENTE_MAX
+R_PENMAX 1.0
+* PENTE_RUPTURE
+R_RUPENT 1.0E-5
+* PROF_PLAT
+R_PRPLAT 0.01
+* REB_DEB
+R_REBDEB
+* VAR_PDX_MAX
+R_VDXMAX 1
+*
+*
+* Definition des Noeuds
+NOEUD Nd_N1 Nd_N2
+*
+*
+* Definition des Branches
+*
+BRANCHE Br_B1 Nd_N1 Nd_N2 20
+*PROF St_PROF1 St_PROF2 St_PROF3
+PROF PCC1 PCC2
+DISTANCE 100.0 100.0
+CPOND 0.5 0.5
+CDIV 0.0 0.0
+CCONV 0.0 0.0
+RUIS 1.0
+* Coeff SINUO DPTG CRUE 10: 1.0. Ce coef vaut 'longeur Lit Mineur/Longueur Lit Majeur' avec Longueur Mineur= longueur branche
+SINUO 200.0 200.0
+*
+*
+* Definition des Frottements
+STRIREF FkSto_K0 0.0
+*
+STRIREFZ PCC1MAJ 0.00 10 50.00 15
+STRIREFZ PCC1MIN 0.00 10 50.00 15
+*
+STRIREFZ PCC2MAJ 0.00 10 50.00 15
+STRIREFZ PCC2MIN 0.00 10 50.00 15
+*
+*
+*
+* Definition des Profils
+*
+PROFIL PCC1
+LIMITEJ 1 1 1 4 4 4
+STRIC FkSto_K0 PCC1MAJ PCC1MIN PCC1MAJ FkSto_K0
+X/Z 0.00 30.00 0.01 17.15 5.35 17.15 5.36 30.00
+ACTIF 3
+LIT MINEUR 3
+*
+PROFIL PCC2
+LIMITEJ 1 1 2 3 4 4
+STRIC FkSto_K0 PCC2MAJ pcc2MIN PCC2MIN FkSto_K0
+X/Z 0.00 30.00 0.01 17.15 5.35 17.15 5.36 30.00
+ACTIF 3
+LIT MINEUR 3
+*
+* Avec FCv1.1, la conversion c9 de PCC2 donne le r\xE9sultat ci-dessous :
+*PROFIL St_PCC2
+*LIMITEJ 1 2 2 3 3 4
+*STRIC Fk_PCC2MAJ FkSto_K0 Fk_PCC2MIN FkSto_K0 Fk_PCC2MIN
+*X/Z 0.0 30.0 0.01 17.15 5.35 17.15
+*X/Z 5.36 30.0
+*ACTIF 2 3 4
+*LIT Lt_MajD 2
+*LIT Lt_MajG 4
+*LIT Lt_Mineur 3
+*LIT Lt_StoD 1
+*LIT Lt_StoG 5
+*
+* Elle devrait donner le r\xE9sultat ci-dessous, tout en produisant \xE0 chaque chargement des erreurs non bloquantes (frottements non-nuls sur des lits de stockage).
+* FCv1.1 d\xE9place tr\xE8s bizarrement les frottements et rend actives des portions du profil qui ne l'\xE9taient pas dans la d\xE9finition initiale de l'utilisateur, ce qu'il ne faut surtout pas faire.
+* Il faut en fait r\xE9soudre le probl\xE8me en ajoutant des lits vides dans le lit actif pour Lt_MajD et Lt_MajG.
+*PROFIL St_PCC2
+*LIMITEJ 1 1 2 2 3 3 4 4
+*STRIC FkSto_K0 Fk_PCC2MAJ Fk_PCC2MIN Fk_PCC2MIN Fk_PCC2MIN Fk_PCC2MAJ FkSto_K0
+*X/Z 0.0 30.0 0.01 17.15 5.35 17.15
+*X/Z 5.36 30.0
+*ACTIF 3 4 5
+*LIT Lt_MajD 3
+*LIT Lt_MajG 5
+*LIT Lt_Mineur 4
+*LIT Lt_StoD 1 2
+*LIT Lt_StoG 6 7
+*
+* Definition des Casiers
Added: trunk/soft/fudaa-crue/crue-validation/src/test/resources/KiPlantePas_c9.dh
===================================================================
--- trunk/soft/fudaa-crue/crue-validation/src/test/resources/KiPlantePas_c9.dh (rev 0)
+++ trunk/soft/fudaa-crue/crue-validation/src/test/resources/KiPlantePas_c9.dh 2014-06-10 22:27:20 UTC (rev 8762)
@@ -0,0 +1,38 @@
+*
+* Donnees generales
+*
+CrueX - Structuration des donn\xE9es
+
+Mod\xE8le de test utilisant les \xE9l\xE9ments de mod\xE9lisation hydraulique les plus courants
+
+NJB
+*
+SEUIL_FROUDE 1E+30 1.0
+COEFF_RELAX_DQ 1.0
+COEFF_RELAX_DZ 1.0
+NB_COURANT_MAX 1E+30 1E+30
+*
+* ical cru cofqrq isorti ile trepr
+1 0.0 0 1 1 0 0 0 0
+*
+* Debits initiaux dans les branches
+Br_B1 125.0
+FIN
+*
+* Niveaux initiaux aux noeuds
+Nd_N1 3.68 Nd_N2 3.67
+FIN
+*
+* Donnees pseudo-permanentes
+*
+* dtperm tolz tolq icalmx iprint ndecou
+0 1 0 0 0.0010 0.01 40 0 1
+*
+* Definition des types des conditions aux limites
+Nd_N1 2
+Nd_N2 1
+FIN
+*
+* Valeurs des conditions aux limites (regimes pseudo-permanents)
+125.0 3.5
+FIN
Modified: trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java 2014-06-09 21:22:31 UTC (rev 8761)
+++ trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java 2014-06-10 22:27:20 UTC (rev 8762)
@@ -103,7 +103,7 @@
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
- final EMHScenario result = load.getResult();
+ final EMHScenario result = load == null ? null : load.getResult();
if (result != null) {
service.activePerspective(perspectiveToActive);
unloadScenario();
Modified: trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiUiController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiUiController.java 2014-06-09 21:22:31 UTC (rev 8761)
+++ trunk/soft/fudaa-crue/ui-loi/src/main/java/org/fudaa/fudaa/crue/loi/section/ProfilSectionLoiUiController.java 2014-06-10 22:27:20 UTC (rev 8762)
@@ -361,6 +361,9 @@
int limiteIdx = 0;
model.getLoiLine(litNommes.get(0).getFirstIdx()).addEtiquette(etiquettesByLimites.get(limites.get(limiteIdx++)));
for (LitNommeIndexed litNommeIndexed : litNommes) {
+ if (litNommeIndexed.getLitNumerotesSize() == 0) {
+ continue;
+ }
int last = litNommeIndexed.getlastIdx();
ProfilSectionEtiquette litNommeEtiquette = etiquettesByLimites.get(limites.get(limiteIdx++));
model.getLoiLine(last).addEtiquette(litNommeEtiquette);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|