Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • pub/numeco/m4g/numecoeval
1 result
Select Git revision
Show changes
......@@ -9,6 +9,7 @@ import org.mte.numecoeval.calculs.domain.data.indicateurs.ImpactOperationNonIT;
import org.mte.numecoeval.calculs.domain.data.referentiel.ReferentielFacteurCaracterisation;
import org.mte.numecoeval.calculs.domain.data.referentiel.ReferentielHypothese;
import org.mte.numecoeval.calculs.domain.data.referentiel.ReferentielTypeItem;
import org.mte.numecoeval.calculs.domain.exception.CalculImpactException;
import org.mte.numecoeval.calculs.domain.port.input.service.CalculImpactOperationNonITService;
import org.mte.numecoeval.calculs.domain.port.input.service.impl.CalculImpactOperationNonITServiceImpl;
......@@ -53,6 +54,127 @@ class CalculImpactOperationNonITServiceTest {
}
}
/**
* Tests de la fonction getDureeVie()
*/
@Test
void shouldCalculerDureeDeVie_fromInventaire() throws CalculImpactException {
// Given
DemandeCalculImpactOperationNonIT demandeCalcul = createDemande();
demandeCalcul.getOperationNonIT().setType("Batiment non DC");
demandeCalcul.getOperationNonIT().setDureeDeVie(2.0);
// When
var actual = calculImpactOperationNonITService.getDureeVie(demandeCalcul);
// Then
assertEquals(2.0, actual.getValeurRetenue(), 2.0);
assertNull(actual.getDureeDeVieParDefaut());
}
@Test
void shouldCalculerDureeDeVie_fromInventaireInf1() throws CalculImpactException {
// Given
DemandeCalculImpactOperationNonIT demandeCalcul = createDemande();
demandeCalcul.getOperationNonIT().setType("Batiment non DC");
demandeCalcul.getOperationNonIT().setDureeDeVie(0.6);
// When
var actual = calculImpactOperationNonITService.getDureeVie(demandeCalcul);
// Then
assertEquals(1.0, actual.getValeurRetenue(), 2.0);
}
@Test
void shouldCalculerDureeDeVie_fromTypeItem() throws JsonProcessingException, CalculImpactException {
// Given
DemandeCalculImpactOperationNonIT demandeCalcul = createDemande();
demandeCalcul.getOperationNonIT().setType("Batiment non DC");
demandeCalcul.setTypeItem(objectMapper.readValue("""
{
"type": "Batiment non DC",
"categorie": "BATIMENT",
"dureeVieDefaut": "3.0",
"refItemParDefaut": "batiment-fr",
"source": "source"
}
""", ReferentielTypeItem.class));
demandeCalcul.setHypotheses(List.of(objectMapper.readValue("""
[
{
"code": "dureeVieBatimentParDefaut",
"valeur": "10.0",
"source": "sourceDefault"
}
]
""", ReferentielHypothese[].class)));
// When
var actual = calculImpactOperationNonITService.getDureeVie(demandeCalcul);
// Then
assertEquals(3.0, actual.getValeurRetenue(), 2.0);
assertEquals(3.0, actual.getDureeDeVieParDefaut().getValeurTypeItemDureeVieDefaut(), 2.0);
assertEquals("source", actual.getDureeDeVieParDefaut().getSourceTypeItemDureeVieDefaut());
}
@Test
void shouldCalculerDureeDeVie_fromTypeItemInf1() throws JsonProcessingException, CalculImpactException {
// Given
DemandeCalculImpactOperationNonIT demandeCalcul = createDemande();
demandeCalcul.getOperationNonIT().setType("Batiment non DC");
demandeCalcul.setTypeItem(objectMapper.readValue("""
{
"type": "Batiment non DC",
"categorie": "BATIMENT",
"dureeVieDefaut": "0.6",
"refItemParDefaut": "batiment-fr",
"source": "source"
}
""", ReferentielTypeItem.class));
// When
var actual = calculImpactOperationNonITService.getDureeVie(demandeCalcul);
// Then
assertEquals(1.0, actual.getValeurRetenue(), 2.0);
assertEquals(0.6, actual.getDureeDeVieParDefaut().getValeurTypeItemDureeVieDefaut(), 2.0);
assertEquals("source", actual.getDureeDeVieParDefaut().getSourceTypeItemDureeVieDefaut());
}
@Test
void shouldCalculerDureeDeVie_fromHypothese() throws JsonProcessingException, CalculImpactException {
// Given
DemandeCalculImpactOperationNonIT demandeCalcul = createDemande();
demandeCalcul.getOperationNonIT().setType("Batiment non DC");
demandeCalcul.setTypeItem(objectMapper.readValue("""
{
"type": "Batiment non DC",
"categorie": "BATIMENT",
"refItemParDefaut": "batiment-fr",
"source": "source"
}
""", ReferentielTypeItem.class));
demandeCalcul.setHypotheses(List.of(objectMapper.readValue("""
[
{
"code": "dureeVieBatimentParDefaut",
"valeur": "10.0",
"source": "sourceDefault"
}
]
""", ReferentielHypothese[].class)));
// When
var actual = calculImpactOperationNonITService.getDureeVie(demandeCalcul);
// Then
assertEquals(10.0, actual.getValeurRetenue(), 2.0);
assertEquals(10.0, actual.getDureeDeVieParDefaut().getValeurReferentielHypothese(), 2.0);
assertEquals("sourceDefault", actual.getDureeDeVieParDefaut().getSourceReferentielHypothese());
}
/**
* Tests de la fonction getFormuleDefaut()
*/
......@@ -125,6 +247,14 @@ class CalculImpactOperationNonITServiceTest {
"valeur": 10,
"source": "SSG"
},
{
"nom": "Electricty Mix FR",
"etape": "FABRICATION",
"critere": "Acidification",
"categorie" : "electricity-mix",
"localisation": "France",
"valeur" : 0.02
},
{
"nom": "Electricty Mix FR",
"etape": "FABRICATION",
......@@ -678,7 +808,8 @@ class CalculImpactOperationNonITServiceTest {
"sourceTypeItemDureeVieDefaut" : "sourceDefault",
"valeur" : 30.0,
"valeurTypeItemDureeVieDefaut" : 30.0
}
},
"valeurRetenue" : 30.0
},
"formule" : "ImpactOperationNonIT = (Quantité(1.0) * ReferentielFacteurCaracterisation(0.1)) / DureeDeVie(30.0)",
"valeurReferentielFacteurCaracterisation" : 0.1
......@@ -736,7 +867,8 @@ class CalculImpactOperationNonITServiceTest {
"sourceReferentielHypothese" : "sourceDefault",
"valeur" : 50.0,
"valeurReferentielHypothese" : 50.0
}
},
"valeurRetenue" : 50.0
},
"formule" : "ImpactOperationNonIT = (Quantité(1.0) * ReferentielFacteurCaracterisation(0.1)) / DureeDeVie(50.0)",
"valeurReferentielFacteurCaracterisation" : 0.1
......
......@@ -105,7 +105,7 @@ class DureeDeVieEquipementPhysiqueServiceTest {
@Test
void taiga864_whenEquipementPhysiqueDateRetraitIsNullShouldUseCurrentDayAsDateRetrait() throws Exception {
//Given
LocalDate dateAchat = LocalDate.now().minusDays(30);
LocalDate dateAchat = LocalDate.now().minusDays(370);
var equipement = EquipementPhysique.builder()
.dateAchat(dateAchat)
.dateRetrait(null)
......@@ -118,7 +118,7 @@ class DureeDeVieEquipementPhysiqueServiceTest {
.build();
//When
var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
var expected = 30 / 365d;
var expected = 370 / 365d;
//Then
assertEquals(expected, actual.getValeurRetenue());
assertEquals(dateAchat.format(DateTimeFormatter.ISO_DATE), actual.getDateAchat());
......
......@@ -5,12 +5,12 @@
<parent>
<groupId>org.mte.numecoeval</groupId>
<artifactId>core</artifactId>
<version>1.3.1-SNAPSHOT</version>
<version>2.1.0-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<artifactId>common</artifactId>
<version>1.3.1-SNAPSHOT</version>
<version>2.1.0-SNAPSHOT</version>
<name>common</name>
<description>Module commun</description>
......
......@@ -11,7 +11,7 @@
<groupId>org.mte.numecoeval</groupId>
<artifactId>core</artifactId>
<version>1.3.1-SNAPSHOT</version>
<version>2.1.0-SNAPSHOT</version>
<name>core</name>
<packaging>pom</packaging>
<description>Projet parent du projet NumEcoEval</description>
......