-
Notifications
You must be signed in to change notification settings - Fork 0
Mapping branches in new UCT #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
38 commits
Select commit
Hold shift + click to select a range
333c39c
UCTE mapping for one line
Sebasss-h 0a77289
Create MappingResults.java
Sebasss-h 1acfea4
Check style
Sebasss-h c709850
Fix
Sebasss-h b5fad73
Test Multi Lines ?
Sebasss-h 4089718
Test Multi Lines
Sebasss-h a7b822a
Test Multi Lines elementName
Sebasss-h 470379c
Refactor UcteMappingTest for improved readability and logic.
OpenSuze 2eac7d6
Handle null values for elementName in UcteMapping.
OpenSuze 8ffa76c
Test Line Switch Position
Sebasss-h 4b74b1c
Merge remote-tracking branch 'origin/ucteMapping' into ucteMapping
Sebasss-h e398128
Test Weird Cases (missing line)
Sebasss-h 9bf4a5e
TieLines and Duplicate Values
Sebasss-h 399bba1
Correction UCTEMapping
Sebasss-h b249e63
Refactoring 1 UcteMapping
Sebasss-h e1f6b01
Add importNetworkInPc and searching bugs
Sebasss-h 836f2e5
Solving and detecting problems UcteMappingTest
Sebasss-h fb4c94d
Solving and detecting problems UcteMappingTest
Sebasss-h 6e2496b
Solving and detecting problems testRealNetwork
Sebasss-h 2c302bc
Adding isFictitious filter
Sebasss-h 2138b81
UcteMapping mapNetworks2
Sebasss-h cd70139
UcteMapping mapNetworks2
Sebasss-h 1759760
Merge branch 'main' into ucteMapping
Sebasss-h 5667b91
UcteMapping line "clean"
Sebasss-h 81d3026
Removing impact Trm algorithm
Sebasss-h 1dead70
Put private package visibility ucte mapping
Sebasss-h 6dc9252
Fix country filtering incorrect implementation
Sebasss-h c2c40f4
Improve readability of the code and overall performance
Sebasss-h 845b1ff
Improve return statements
Sebasss-h 49b1791
DuplicateCheck method
Sebasss-h 1255c30
DuplicateCheck method in mapNetworks
Sebasss-h 44fdc6b
Refactor Uctemapping function
Sebasss-h 5a1848e
UcteMapper function and fix-tests
Sebasss-h a8caada
Fix tests and update code comments
Sebasss-h 5fe88bf
Implement UCteMapper in TrmAlgorithm and identify bug in test
Sebasss-h 40137a1
Fix TrmAlgorithm
Sebasss-h 739e123
rollback file modifications
murgeyseb c422bf8
rollback file modifications
murgeyseb File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
17 changes: 17 additions & 0 deletions
17
src/main/java/com/rte_france/trm_algorithm/id_mapping/IdMappingNotFoundException.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| /* | ||
| * Copyright (c) 2025, RTE (http://www.rte-france.com) | ||
| * This Source Code Form is subject to the terms of the Mozilla Public | ||
| * License, v. 2.0. If a copy of the MPL was not distributed with this | ||
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
| * SPDX-License-Identifier: MPL-2.0 | ||
| */ | ||
| package com.rte_france.trm_algorithm.id_mapping; | ||
|
Sebasss-h marked this conversation as resolved.
|
||
|
|
||
| /** | ||
| * @author Sebastian Huaraca {@literal <sebastian.huaracalapa at rte-france.com>} | ||
| */ | ||
| public class IdMappingNotFoundException extends RuntimeException { | ||
|
Sebasss-h marked this conversation as resolved.
|
||
| public IdMappingNotFoundException(String message) { | ||
| super(message); | ||
| } | ||
| } | ||
87 changes: 87 additions & 0 deletions
87
src/main/java/com/rte_france/trm_algorithm/id_mapping/IdentifiableMapping.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,87 @@ | ||
| /* | ||
| * Copyright (c) 2025, RTE (http://www.rte-france.com) | ||
| * This Source Code Form is subject to the terms of the Mozilla Public | ||
| * License, v. 2.0. If a copy of the MPL was not distributed with this | ||
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
| * SPDX-License-Identifier: MPL-2.0 | ||
| */ | ||
| package com.rte_france.trm_algorithm.id_mapping; | ||
|
Sebasss-h marked this conversation as resolved.
|
||
|
|
||
| import org.slf4j.Logger; | ||
| import org.slf4j.LoggerFactory; | ||
|
|
||
| import java.util.ArrayList; | ||
| import java.util.HashMap; | ||
| import java.util.List; | ||
| import java.util.Map; | ||
|
|
||
| /** | ||
| * @author Sebastian Huaraca {@literal <sebastian.huaracalapa at rte-france.com>} | ||
| */ | ||
| public class IdentifiableMapping { | ||
|
Sebasss-h marked this conversation as resolved.
|
||
| public final Map<String, String> mappingFromMarketBasedToReference; | ||
| public final Map<String, String> mappingFromReferenceToMarketBased; | ||
| private static final Logger LOGGER = LoggerFactory.getLogger(IdentifiableMapping.class); | ||
|
|
||
| IdentifiableMapping(Map<String, String> mappingFromMarketBasedToReference, Map<String, String> mappingFromReferenceToMarketBased) { | ||
| this.mappingFromMarketBasedToReference = mappingFromMarketBasedToReference; | ||
| this.mappingFromReferenceToMarketBased = mappingFromReferenceToMarketBased; | ||
| } | ||
|
|
||
| public String idInReference(String s) { | ||
| return mappingFromMarketBasedToReference.computeIfAbsent(s, idInMarket -> { | ||
| throw new IdMappingNotFoundException("Id - " + s + " - not found in reference"); | ||
| }); | ||
| } | ||
|
|
||
| public String idInMarketBased(String s) { | ||
| return mappingFromReferenceToMarketBased.computeIfAbsent(s, idInReference -> { | ||
| throw new IdMappingNotFoundException("Id - " + s + " - not found in marketBased"); | ||
| }); | ||
| } | ||
|
|
||
| public static class IdentifiableMappingBuilder { | ||
| Map<String, String> mappingFromMarketBasedToReference = new HashMap<>(); | ||
| Map<String, String> mappingFromReferenceToMarketBased = new HashMap<>(); | ||
| List<String> invalidatedInMarketBased = new ArrayList<>(); | ||
| List<String> invalidatedInReference = new ArrayList<>(); | ||
|
|
||
| IdentifiableMapping build() { | ||
| return new IdentifiableMapping(mappingFromMarketBasedToReference, mappingFromReferenceToMarketBased); | ||
| } | ||
|
|
||
| public void addMappingOrInvalidateDuplicates(String idMarketBased, String idReference) { | ||
| if (invalidatedInMarketBased.contains(idMarketBased)) { | ||
| LOGGER.error("Duplicated branches found for: {} in marketBased", idMarketBased); | ||
| return; | ||
| } | ||
| if (invalidatedInReference.contains(idReference)) { | ||
| LOGGER.error("Duplicated branches found for: {} in reference", idReference); | ||
| return; | ||
| } | ||
|
|
||
| if (mappingFromMarketBasedToReference.containsKey(idMarketBased) && mappingFromMarketBasedToReference.get(idMarketBased) != idReference) { | ||
| String previousReference = mappingFromMarketBasedToReference.get(idMarketBased); | ||
| mappingFromMarketBasedToReference.remove(idMarketBased); | ||
| mappingFromReferenceToMarketBased.remove(idReference); | ||
| invalidatedInMarketBased.add(idMarketBased); | ||
| invalidatedInReference.add(idReference); | ||
| invalidatedInReference.add(previousReference); | ||
| return; | ||
| } | ||
|
|
||
| if (mappingFromReferenceToMarketBased.containsKey(idReference) && mappingFromReferenceToMarketBased.get(idReference) != idMarketBased) { | ||
| String previousMarketBased = mappingFromReferenceToMarketBased.get(idReference); | ||
| mappingFromMarketBasedToReference.remove(idMarketBased); | ||
| mappingFromReferenceToMarketBased.remove(idReference); | ||
| invalidatedInMarketBased.add(idMarketBased); | ||
| invalidatedInMarketBased.add(previousMarketBased); | ||
| invalidatedInReference.add(idReference); | ||
| return; | ||
| } | ||
|
|
||
| mappingFromReferenceToMarketBased.put(idReference, idMarketBased); | ||
| mappingFromMarketBasedToReference.put(idMarketBased, idReference); | ||
| } | ||
| } | ||
| } | ||
89 changes: 89 additions & 0 deletions
89
src/main/java/com/rte_france/trm_algorithm/id_mapping/UcteMapper.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,89 @@ | ||
| /* | ||
| * Copyright (c) 2025, RTE (http://www.rte-france.com) | ||
| * This Source Code Form is subject to the terms of the Mozilla Public | ||
| * License, v. 2.0. If a copy of the MPL was not distributed with this | ||
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
| * SPDX-License-Identifier: MPL-2.0 | ||
| */ | ||
| package com.rte_france.trm_algorithm.id_mapping; | ||
|
|
||
| import com.powsybl.iidm.network.*; | ||
| import com.powsybl.openrao.data.crac.io.commons.ucte.UcteMatchingResult; | ||
| import com.powsybl.openrao.data.crac.io.commons.ucte.UcteNetworkAnalyzer; | ||
| import com.powsybl.openrao.data.crac.io.commons.ucte.UcteNetworkAnalyzerProperties; | ||
| import java.util.*; | ||
|
|
||
| /** | ||
| * @author Sebastian Huaraca {@literal <sebastian.huaracalapa at rte-france.com>} | ||
| */ | ||
|
|
||
|
Sebasss-h marked this conversation as resolved.
|
||
| public final class UcteMapper { | ||
| private static final UcteNetworkAnalyzerProperties UCTE_NETWORK_ANALYZER_PROPERTIES = new UcteNetworkAnalyzerProperties(UcteNetworkAnalyzerProperties.BusIdMatchPolicy.REPLACE_8TH_CHARACTER_WITH_WILDCARD); | ||
|
|
||
| public static IdentifiableMapping mapNetworks(Network networkReference, Network networkMarketBased) { | ||
| IdentifiableMapping.IdentifiableMappingBuilder builder = new IdentifiableMapping.IdentifiableMappingBuilder(); | ||
| UcteNetworkAnalyzer analyser = new UcteNetworkAnalyzer(networkReference, UCTE_NETWORK_ANALYZER_PROPERTIES); | ||
| // Code unable to map the Tielines | ||
| networkMarketBased.getBranchStream() | ||
| .filter(branch -> branch.getId().length() == 19) | ||
| .forEach(branch -> mapNetworks(analyser, builder, networkMarketBased, branch)); | ||
| return builder.build(); | ||
| } | ||
|
|
||
| public static IdentifiableMapping mapNetworks(Network networkReference, Network networkMarketBased, Country... chosenCountries) { | ||
| IdentifiableMapping.IdentifiableMappingBuilder builder = new IdentifiableMapping.IdentifiableMappingBuilder(); | ||
| UcteNetworkAnalyzer analyser = new UcteNetworkAnalyzer(networkReference, UCTE_NETWORK_ANALYZER_PROPERTIES); | ||
| // Code unable to map the Tielines | ||
| networkMarketBased.getBranchStream() | ||
| .filter(branch -> isBranchConnectedToAnyGivenCountry(branch, chosenCountries)) | ||
| .filter(branch -> branch.getId().length() == 19) | ||
| .forEach(branch -> mapNetworks(analyser, builder, networkMarketBased, branch)); | ||
| return builder.build(); | ||
| } | ||
|
|
||
| private static boolean isBranchConnectedToAnyGivenCountry(Branch branch, Country... countries) { | ||
| return Arrays.stream(countries).anyMatch(country -> isBranchConnectedToCountry(branch, country)); | ||
| } | ||
|
|
||
| private static boolean isBranchConnectedToCountry(Branch branch, Country country) { | ||
| Optional<Country> country1 = branch.getTerminal1().getVoltageLevel() | ||
| .getSubstation().flatMap(Substation::getCountry); | ||
| Optional<Country> country2 = branch.getTerminal2().getVoltageLevel() | ||
| .getSubstation().flatMap(Substation::getCountry); | ||
| return country1.isPresent() && country1.get().equals(country) || | ||
| country2.isPresent() && country2.get().equals(country); | ||
| } | ||
|
|
||
| private static void mapNetworks(UcteNetworkAnalyzer analyser, IdentifiableMapping.IdentifiableMappingBuilder builder, Network networkMarketBased, Branch branch) { | ||
| String voltageLevelSide1 = getVoltageLevelSide1(branch.getId()); | ||
| String voltageLevelSide2 = getVoltageLevelSide2(branch.getId()); | ||
| String orderCode = getOrderCode(branch.getId()); | ||
| Optional<String> optionalElementName = Optional.ofNullable(networkMarketBased.getBranch(branch.getId()).getProperty("elementName")); | ||
| UcteMatchingResult resultOrderCode = analyser.findTopologicalElement(voltageLevelSide1, voltageLevelSide2, orderCode); | ||
| if (resultOrderCode.getStatus() == UcteMatchingResult.MatchStatus.SINGLE_MATCH) { | ||
| builder.addMappingOrInvalidateDuplicates(branch.getId(), resultOrderCode.getIidmIdentifiable().getId()); | ||
| } | ||
| if (optionalElementName.isPresent()) { | ||
| UcteMatchingResult resultElementName = analyser.findTopologicalElement(voltageLevelSide1, voltageLevelSide2, networkMarketBased.getBranch(branch.getId()).getProperty("elementName")); | ||
| if (resultElementName.getStatus() == UcteMatchingResult.MatchStatus.SINGLE_MATCH) { | ||
| builder.addMappingOrInvalidateDuplicates(branch.getId(), resultElementName.getIidmIdentifiable().getId()); | ||
| } | ||
| } | ||
| } | ||
|
|
||
| private static String getOrderCode(String id) { | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What happen if the id does not respect UCTE formet (e.g. modified network using script, or CGMES based network). Fail ? |
||
| return id.substring(18); | ||
| } | ||
|
|
||
| private static String getVoltageLevelSide2(String id) { | ||
| return id.substring(9, 16); | ||
| } | ||
|
|
||
| private static String getVoltageLevelSide1(String id) { | ||
| return id.substring(0, 7); | ||
| } | ||
|
|
||
| //Utility class | ||
| private UcteMapper() { | ||
| } | ||
| } | ||
113 changes: 113 additions & 0 deletions
113
src/test/java/com/rte_france/trm_algorithm/id_mapping/UcteMapperTest.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,113 @@ | ||
| /* | ||
| * Copyright (c) 2025, RTE (http://www.rte-france.com) | ||
| * This Source Code Form is subject to the terms of the Mozilla Public | ||
| * License, v. 2.0. If a copy of the MPL was not distributed with this | ||
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
| * SPDX-License-Identifier: MPL-2.0 | ||
| */ | ||
| package com.rte_france.trm_algorithm.id_mapping; | ||
|
|
||
| import com.powsybl.iidm.network.Country; | ||
| import com.powsybl.iidm.network.Network; | ||
| import com.rte_france.trm_algorithm.TestUtils; | ||
| import org.junit.jupiter.api.Test; | ||
|
|
||
| import static org.junit.jupiter.api.Assertions.*; | ||
|
|
||
| /** | ||
| * @author Sebastian Huaraca {@literal <sebastian.huaracalapa at rte-france.com>} | ||
| */ | ||
| public class UcteMapperTest { | ||
| @Test | ||
| void testMultiLines() { | ||
| // Given | ||
| Network networkReference = TestUtils.importNetwork("TestCase12Nodes/TestCase12Nodes_NewId.uct"); | ||
| Network networkMarketBased = TestUtils.importNetwork("TestCase12Nodes/TestCase12Nodes.uct"); | ||
| // When | ||
| IdentifiableMapping mappingResults = UcteMapper.mapNetworks(networkReference, networkMarketBased); | ||
| //Then | ||
| assertEquals("BBE1AA1 BBE2AA1 1", mappingResults.idInMarketBased("BBE1AA12 BBE2AA11 1")); | ||
| assertEquals("DDE1AA1 DDE2AA1 1", mappingResults.idInMarketBased("DDE1AA1 DDE2AA1 1")); | ||
| assertEquals("NNL2AA1 BBE3AA1 1", mappingResults.idInReference("NNL2AA1 BBE3AA1 1")); | ||
| assertEquals("BBE2AA11 BBE3AA1 1", mappingResults.idInReference("BBE2AA1 BBE3AA1 1")); | ||
| } | ||
|
|
||
| @Test | ||
| void testSameOrderCode() { | ||
| //Given | ||
| Network networkReference = TestUtils.importNetwork("TestCase12Nodes/20170322_1844_SN3_FR2.uct"); | ||
| Network networkMarketBased = TestUtils.importNetwork("TestCase12Nodes/20170322_1844_SN3_FR2_NewId.uct"); | ||
| //When | ||
| IdentifiableMapping mappingResults = UcteMapper.mapNetworks(networkReference, networkMarketBased); | ||
| //Then | ||
| assertEquals("FFNHV211 FFNHV311 1", mappingResults.idInReference("FFNHV211 FFNHV311 1")); | ||
| assertThrows(IdMappingNotFoundException.class, () -> { | ||
| assertEquals("FFNHV111 FFNHV211 1", mappingResults.idInReference("FFNHV111 FFNHV211 1")); | ||
| }); | ||
| assertEquals("FFNHV211 FFNHV311 1", mappingResults.idInMarketBased("FFNHV211 FFNHV311 1")); | ||
| } | ||
|
Sebasss-h marked this conversation as resolved.
|
||
|
|
||
| @Test | ||
| void testLineSwitchSubstationPosition() { | ||
| //Given | ||
| Network networkReference = TestUtils.importNetwork("TestCase12Nodes/20170322_1844_SN3_FR2.uct"); | ||
| Network networkMarketBased = TestUtils.importNetwork("TestCase12Nodes/20170322_1844_SN3_FR2_NewPosition.uct"); | ||
| //When | ||
| IdentifiableMapping mappingResults = UcteMapper.mapNetworks(networkReference, networkMarketBased); | ||
| //Then | ||
| assertEquals("FFNHV111 FFNHV211 1", mappingResults.idInReference("FFNHV211 FFNHV111 1")); | ||
| assertEquals("FFNHV211 FFNHV111 1", mappingResults.idInMarketBased("FFNHV111 FFNHV211 1")); | ||
| } | ||
|
|
||
| @Test | ||
| void testRemoveLines() { | ||
| //Given | ||
| Network networkReference = TestUtils.importNetwork("TestCase12Nodes/20170322_1844_SN3_FR2.uct"); | ||
| Network networkMarketBased = TestUtils.importNetwork("TestCase12Nodes/20170322_1844_SN3_FR2_NewPosition.uct"); | ||
| networkReference.getLine("FFNHV111 FFNHV211 2").remove(); | ||
| networkMarketBased.getLine("FFNHV311 FFNHV211 1").remove(); | ||
| //When | ||
| IdentifiableMapping mappingResults = UcteMapper.mapNetworks(networkReference, networkMarketBased); | ||
| //Then | ||
| networkMarketBased.getLine("FFNHV111 FFNHV211 2"); | ||
| assertThrows(IdMappingNotFoundException.class, () -> { | ||
| assertEquals("FFNHV111 FFNHV211 2", mappingResults.idInMarketBased("FFNHV111 FFNHV211 2")); | ||
| }); | ||
| networkReference.getLine("FFNHV311 FFNHV211 1"); | ||
| assertThrows(IdMappingNotFoundException.class, () -> { | ||
| assertEquals("FFNHV311 FFNHV211 1", mappingResults.idInReference("FFNHV311 FFNHV211 1")); | ||
| }); | ||
| } | ||
|
|
||
| @Test | ||
| void testDuplicateValues() { | ||
| //Given | ||
| Network networkReference = TestUtils.importNetwork("TestCase12Nodes/20170322_1844_SN3_FR2_Repetitive.uct"); | ||
| Network networkMarketBased = TestUtils.importNetwork("TestCase12Nodes/20170322_1844_SN3_FR2_NewDuplicate.uct"); | ||
| //When | ||
| IdentifiableMapping mappingResults = UcteMapper.mapNetworks(networkReference, networkMarketBased); | ||
| //Then | ||
| assertEquals("FFNHV211 FFNHV311 1", mappingResults.idInReference("FFNHV311 FFNHV211 1")); | ||
| assertEquals("FFNHV211 FFNLOA31 L", mappingResults.idInReference("FFNHV211 FFNLOA31 L")); | ||
| assertEquals("FFNHV111 FFNHV211 1", mappingResults.idInReference("FFNHV211 FFNHV111 1")); | ||
| assertEquals("FFNGEN71 FFNHV111 1", mappingResults.idInReference("FFNGEN71 FFNHV111 1")); | ||
| assertEquals("FFNHV311 FFNHV211 1", mappingResults.idInMarketBased("FFNHV211 FFNHV311 1")); | ||
| assertEquals("FFNHV211 FFNLOA31 L", mappingResults.idInMarketBased("FFNHV211 FFNLOA31 L")); | ||
| assertEquals("FFNGEN71 FFNHV111 1", mappingResults.idInMarketBased("FFNGEN71 FFNHV111 1")); | ||
| } | ||
|
|
||
| @Test | ||
| void testChosenCountries() { | ||
| //Given | ||
| Network networkReference = TestUtils.importNetwork("TestCase12Nodes/NETWORK_TEST_IN_REFERENCE.uct"); | ||
| Network networkMarketBased = TestUtils.importNetwork("TestCase12Nodes/NETWORK_TEST_IN_MARKET.uct"); | ||
| //When | ||
| IdentifiableMapping mappingResults = UcteMapper.mapNetworks(networkReference, networkMarketBased); | ||
| IdentifiableMapping mappingResultsChosenCountrys = UcteMapper.mapNetworks(networkReference, networkMarketBased, Country.IT, Country.FR, Country.SI, Country.CH, Country.AT); | ||
| //Then | ||
| assertEquals("DGENE111 DLOAD111 1", mappingResults.idInReference("DGENE111 DLOAD111 1")); | ||
| assertThrows(IdMappingNotFoundException.class, () -> { | ||
| assertEquals("DGENE111 DLOAD111 1", mappingResultsChosenCountrys.idInReference("DGENE111 DLOAD111 1")); | ||
| }); | ||
| } | ||
| } | ||
23 changes: 23 additions & 0 deletions
23
src/test/resources/com/rte_france/trm_algorithm/TestCase12Nodes/20170322_1844_SN3_FR2.uct
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| ##C 2007.05.01 | ||
| Informations : 20170322_1844_SN3_FR2.uct | ||
| Date of situation : 2017/03/22 18:44 | ||
| Copyright (c) 2017, RTE | ||
| This Source Code Form is subject to the terms of the Mozilla Public | ||
| License, v. 2.0. If a copy of the MPL was not distributed with this | ||
| file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
| ##N | ||
| ##ZFR | ||
| FFNGEN71 FNGEN__ GEN- 0 2 24.000 0.00000 0.00000 -800.00 0.00000 9999.00 -9999.0 999.000 -999.00 | ||
| FFNHV111 FNHV1__ HV1- 0 0 0.00000 0.00000 0.00000 0.00000 | ||
| FFNHV211 FNHV2__ HV2- 0 0 0.00000 0.00000 0.00000 0.00000 | ||
| FFNHV311 FNHV3__ HV3- 0 3 400.00 0.00000 0.00000 0.00000 0.00000 9999.00 -9999.0 9999.00 -9999.0 | ||
| FFNLOA31 FNLOAD_ OAD- 0 0 600.000 400.000 0.00000 0.00000 | ||
| ##L | ||
| FFNHV111 FFNHV211 1 0 3.0035 32.995 385.9970 1519 NHV1 -NHV | ||
| FFNHV111 FFNHV211 2 0 3.0035 32.995 385.9970 1519 NHV3 -NHV | ||
| FFNHV211 FFNHV311 1 0 3.0035 32.995 385.9970 1519 NHV2 -NHV | ||
| ##T | ||
| FFNGEN71 FFNHV111 1 0 24.00 400.0 1300. 0.0010 0.0500 0.000000 0.0000 9999 NGEN -NHV | ||
| FFNHV211 FFNLOA31 L 0 400.0 158.0 1000. 0.3360 15.997 -5.48435 1.2500 9999 NHV2 -NLO | ||
| ##R | ||
| FFNHV211 FFNLOA31 L 1.000 10 0 |
23 changes: 23 additions & 0 deletions
23
...urces/com/rte_france/trm_algorithm/TestCase12Nodes/20170322_1844_SN3_FR2_NewDuplicate.uct
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| ##C 2007.05.01 | ||
| Informations : 20170322_1844_SN3_FR2.uct | ||
| Date of situation : 2017/03/22 18:44 | ||
| Copyright (c) 2017, RTE | ||
| This Source Code Form is subject to the terms of the Mozilla Public | ||
| License, v. 2.0. If a copy of the MPL was not distributed with this | ||
| file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
| ##N | ||
| ##ZFR | ||
| FFNGEN71 FNGEN__ GEN- 0 2 24.000 0.00000 0.00000 -800.00 0.00000 9999.00 -9999.0 999.000 -999.00 | ||
| FFNHV111 FNHV1__ HV1- 0 0 0.00000 0.00000 0.00000 0.00000 | ||
| FFNHV211 FNHV2__ HV2- 0 0 0.00000 0.00000 0.00000 0.00000 | ||
| FFNHV311 FNHV3__ HV3- 0 3 400.00 0.00000 0.00000 0.00000 0.00000 9999.00 -9999.0 9999.00 -9999.0 | ||
| FFNLOA31 FNLOAD_ OAD- 0 0 600.000 400.000 0.00000 0.00000 | ||
| ##L | ||
| FFNHV211 FFNHV111 1 0 3.0035 32.995 385.9970 1519 NHV1 -NHV | ||
| FFNHV111 FFNHV211 1 0 3.0035 32.995 385.9970 1519 NHV1 -NHV | ||
| FFNHV311 FFNHV211 1 0 3.0035 32.995 385.9970 1519 NHV2 -NHV | ||
| ##T | ||
| FFNGEN71 FFNHV111 1 0 24.00 400.0 1300. 0.0010 0.0500 0.000000 0.0000 9999 NGEN -NHV | ||
| FFNHV211 FFNLOA31 L 0 400.0 158.0 1000. 0.3360 15.997 -5.48435 1.2500 9999 NHV2 -NLO | ||
| ##R | ||
| FFNHV211 FFNLOA31 L 1.000 10 0 |
23 changes: 23 additions & 0 deletions
23
...st/resources/com/rte_france/trm_algorithm/TestCase12Nodes/20170322_1844_SN3_FR2_NewId.uct
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| ##C 2007.05.01 | ||
| Informations : 20170322_1844_SN3_FR2.uct | ||
| Date of situation : 2017/03/22 18:44 | ||
| Copyright (c) 2017, RTE | ||
| This Source Code Form is subject to the terms of the Mozilla Public | ||
| License, v. 2.0. If a copy of the MPL was not distributed with this | ||
| file, You can obtain one at http://mozilla.org/MPL/2.0/. | ||
| ##N | ||
| ##ZFR | ||
| FFNGEN71 FNGEN__ GEN- 0 2 24.000 0.00000 0.00000 -800.00 0.00000 9999.00 -9999.0 999.000 -999.00 | ||
| FFNHV111 FNHV1__ HV1- 0 0 0.00000 0.00000 0.00000 0.00000 | ||
| FFNHV211 FNHV2__ HV2- 0 0 0.00000 0.00000 0.00000 0.00000 | ||
| FFNHV311 FNHV3__ HV3- 0 3 400.00 0.00000 0.00000 0.00000 0.00000 9999.00 -9999.0 9999.00 -9999.0 | ||
| FFNLOA31 FNLOAD_ OAD- 0 0 600.000 400.000 0.00000 0.00000 | ||
| ##L | ||
| FFNHV111 FFNHV211 1 0 3.0035 32.995 385.9970 1519 NHV1 -NHV | ||
| FFNHV111 FFNHV211 1 0 3.0035 32.995 385.9970 1519 NHV3 -NHV | ||
| FFNHV211 FFNHV311 1 0 3.0035 32.995 385.9970 1519 NHV2 -NHV | ||
| ##T | ||
| FFNGEN71 FFNHV111 1 0 24.00 400.0 1300. 0.0010 0.0500 0.000000 0.0000 9999 NGEN -NHV | ||
| FFNHV211 FFNLOA31 L 0 400.0 158.0 1000. 0.3360 15.997 -5.48435 1.2500 9999 NHV2 -NLO | ||
| ##R | ||
| FFNHV211 FFNLOA31 L 1.000 10 0 |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add the default scope and move this dependency into its section (in alphabetical order: line 83 I think) ?