@@ -27,29 +27,34 @@ class ContingencyLimitViolationTest {
2727
2828 @ Test
2929 void testContingencyLimitViolationEntityNewFields () {
30- Network network = EurostagTutorialExample1Factory .createWithFixedCurrentLimits ();
31- LimitViolation limitViolation = new LimitViolation ("NHV1_NHV2_1" , "NHV1_NHV2_1" , LimitViolationType .CURRENT , "10'" , 10 * 60 , 1200 , 1 , 1250 , TwoSides .TWO );
32-
33- SubjectLimitViolationEntity subjectLimitViolationEntity = new SubjectLimitViolationEntity ("NHV1_NHV2_1" , "NHV1_NHV2_1_name" );
30+ testContingencyLimitViolationMapping ("10'" , 10 * 60 , 1200 , 1250 , TwoSides .TWO , "1'" , 1100 );
31+ }
3432
35- ContingencyLimitViolationEntity contingencyLimitViolationEntity = ContingencyLimitViolationEntity .toEntity (network , limitViolation , subjectLimitViolationEntity );
33+ @ Test
34+ void testContingencyLimitViolationEntityNewFieldsWithPermanentLimitReached () {
35+ testContingencyLimitViolationMapping (LimitViolationUtils .PERMANENT_LIMIT_NAME , Integer .MAX_VALUE , 1100 , 1150 , TwoSides .TWO , "10'" , 1100 );
36+ }
3637
37- assertEquals ( "1'" , contingencyLimitViolationEntity . getNextLimitName ());
38- assertEquals ( 1100 , contingencyLimitViolationEntity . getPatlLimit ());
39- assertEquals ( 100 * limitViolation . getValue () / contingencyLimitViolationEntity . getPatlLimit (), contingencyLimitViolationEntity . getPatlLoading () );
38+ @ Test
39+ void testContingencyLimitViolationEntityNewFieldsWithPermanentLimitReachedAndNoTemporaryLimit () {
40+ testContingencyLimitViolationMapping ( LimitViolationUtils . PERMANENT_LIMIT_NAME , Integer . MAX_VALUE , 500 , 1000 , TwoSides . ONE , null , 500 );
4041 }
4142
4243 @ Test
43- void testContingencyLimitViolationEntityNewFieldsWithPermanentLimitReached () {
44+ void testContingencyLimitViolationEntityNewFieldsWithLastLimitReached () {
45+ testContingencyLimitViolationMapping ("N/A" , 0 , 1100 , 3000 , TwoSides .TWO , null , 1100 );
46+ }
47+
48+ private void testContingencyLimitViolationMapping (String limitName , int acceptableDuration , double limit , double value , TwoSides side , String expectedNextLimitName , long expectedPatlLimit ) {
4449 Network network = EurostagTutorialExample1Factory .createWithFixedCurrentLimits ();
45- LimitViolation limitViolation = new LimitViolation ("NHV1_NHV2_1" , "NHV1_NHV2_1 " , LimitViolationType .CURRENT , LimitViolationUtils . PERMANENT_LIMIT_NAME , 10 * 60 , 1100 , 1 , 1150 , TwoSides . TWO );
50+ LimitViolation limitViolation = new LimitViolation ("NHV1_NHV2_1" , "NHV1_NHV2_1_name " , LimitViolationType .CURRENT , limitName , acceptableDuration , limit , 1 , value , side );
4651
4752 SubjectLimitViolationEntity subjectLimitViolationEntity = new SubjectLimitViolationEntity ("NHV1_NHV2_1" , "NHV1_NHV2_1_name" );
4853
4954 ContingencyLimitViolationEntity contingencyLimitViolationEntity = ContingencyLimitViolationEntity .toEntity (network , limitViolation , subjectLimitViolationEntity );
5055
51- assertEquals ("10'" , contingencyLimitViolationEntity .getNextLimitName ());
52- assertEquals (1100 , contingencyLimitViolationEntity .getPatlLimit ());
56+ assertEquals (expectedNextLimitName , contingencyLimitViolationEntity .getNextLimitName ());
57+ assertEquals (expectedPatlLimit , contingencyLimitViolationEntity .getPatlLimit ());
5358 assertEquals (100 * limitViolation .getValue () / contingencyLimitViolationEntity .getPatlLimit (), contingencyLimitViolationEntity .getPatlLoading ());
5459 }
5560}
0 commit comments