From 6eee70a0566b1fb120365aada5ac22c06af6f71f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Achim=20V=C3=B6lker?= Date: Wed, 20 Jan 2021 18:05:36 +0100 Subject: [PATCH] add test cases to github ci MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Achim Völker install xerces-c in dockerfile Signed-off-by: Achim Völker --- .github/workflows/build-src.yml | 83 ++++- .gitlab-ci.yml | 48 ++- Dockerfile | 2 +- examples/src/main.cpp | 102 +++++- test/create_output.bash | 9 + test/diff.bash | 7 + ...V_RightFeeder_NEPLAN.IdentifiedObjects.txt | 43 +++ ...ack_Load_Line_Sample.IdentifiedObjects.txt | 23 ++ test/testFiles.py | 77 ++++ .../Rootnet_Area 1_NE_20J11h_DI.xml | 243 ++++++++++++ .../Rootnet_Area 1_NE_20J11h_EQ.xml | 345 ++++++++++++++++++ .../Rootnet_Area 1_NE_20J11h_TP.xml | 63 ++++ .../Rootnet_FULL_NE_20J11h_SV.xml | 44 +++ .../Rootnet_FULL_NE_19J18h_DI.xml | 125 +++++++ .../Rootnet_FULL_NE_19J18h_EQ.xml | 162 ++++++++ .../Rootnet_FULL_NE_19J18h_SV.xml | 29 ++ .../Rootnet_FULL_NE_19J18h_TP.xml | 42 +++ 17 files changed, 1437 insertions(+), 10 deletions(-) create mode 100755 test/create_output.bash create mode 100755 test/diff.bash create mode 100644 test/solutions/CIGRE_MV_RightFeeder_NEPLAN.IdentifiedObjects.txt create mode 100644 test/solutions/Slack_Load_Line_Sample.IdentifiedObjects.txt create mode 100755 test/testFiles.py create mode 100644 test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_DI.xml create mode 100644 test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_EQ.xml create mode 100644 test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_TP.xml create mode 100644 test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_FULL_NE_20J11h_SV.xml create mode 100644 test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_DI.xml create mode 100644 test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_EQ.xml create mode 100644 test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_SV.xml create mode 100644 test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_TP.xml diff --git a/.github/workflows/build-src.yml b/.github/workflows/build-src.yml index 8f1135baa..99318b35f 100644 --- a/.github/workflows/build-src.yml +++ b/.github/workflows/build-src.yml @@ -29,7 +29,25 @@ jobs: cmake ../.. -DUSE_CIM_VERSION=${{env.USE_CIM_VERSION}} make -j8 - + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}} + + - name: Configure CMake and compile + shell: bash + working-directory: ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}}/ + run: | + cd ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}} + cmake ../.. -DUSE_CIM_VERSION=${{env.USE_CIM_VERSION}} + make -j8 + - name: Run tests + shell: bash + working-directory: ${{runner.workspace}}/libcimpp/test + run: | + ./testFiles.py $USE_CIM_VERSION + - uses: actions/upload-artifact@master + with: + name: test_results_${{env.USE_CIM_VERSION}} + path: ${{runner.workspace}}/libcimpp/test/outputs/${{env.USE_CIM_VERSION}} build-src-IEC61970_17v07: runs-on: ubuntu-latest @@ -54,6 +72,27 @@ jobs: cd ${{runner.workspace}}/libcimpp/build/${{env.USE_CIM_VERSION}} cmake ../.. -DUSE_CIM_VERSION=${{env.USE_CIM_VERSION}} make -j8 + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}} + + - name: Configure CMake and compile + shell: bash + working-directory: ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}}/ + run: | + cd ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}} + cmake ../.. -DUSE_CIM_VERSION=${{env.USE_CIM_VERSION}} + make -j8 + - name: Run tests + shell: bash + working-directory: ${{runner.workspace}}/libcimpp/test + run: | + ./testFiles.py $USE_CIM_VERSION + - uses: actions/upload-artifact@master + with: + name: test_results_${{env.USE_CIM_VERSION}} + path: ${{runner.workspace}}/libcimpp/test/outputs/${{env.USE_CIM_VERSION}} + + build-src-IEC61970_16v29a_IEC61968_12v08: runs-on: ubuntu-latest @@ -79,6 +118,27 @@ jobs: cmake ../.. -DUSE_CIM_VERSION=${{env.USE_CIM_VERSION}} make -j8 + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}} + + - name: Configure CMake and compile + shell: bash + working-directory: ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}}/ + run: | + cd ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}} + cmake ../.. -DUSE_CIM_VERSION=${{env.USE_CIM_VERSION}} + make -j8 + - name: Run tests + shell: bash + working-directory: ${{runner.workspace}}/libcimpp/test + run: | + ./testFiles.py $USE_CIM_VERSION + - uses: actions/upload-artifact@master + with: + name: test_results_${{env.USE_CIM_VERSION}} + path: ${{runner.workspace}}/libcimpp/test/outputs/${{env.USE_CIM_VERSION}} + + build-src-CGMES_2-4-15_27JAN2020: runs-on: ubuntu-latest @@ -105,3 +165,24 @@ jobs: cmake ../.. -DUSE_CIM_VERSION=${{env.USE_CIM_VERSION}} make -j8 + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}} + + - name: Configure CMake and compile + shell: bash + working-directory: ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}}/ + run: | + cd ${{runner.workspace}}/libcimpp/examples/cmake/build/${{env.USE_CIM_VERSION}} + cmake ../.. -DUSE_CIM_VERSION=${{env.USE_CIM_VERSION}} + make -j8 + + - name: Run tests + shell: bash + working-directory: ${{runner.workspace}}/libcimpp/test + run: | + ./testFiles.py $USE_CIM_VERSION + - uses: actions/upload-artifact@master + with: + name: test_results_${{env.USE_CIM_VERSION}} + path: ${{runner.workspace}}/libcimpp/test/outputs/${{env.USE_CIM_VERSION}} + diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c3c427533..011dabd03 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,7 @@ variables: stages: - prepare - build-src + - test-files - build-doc - deploy @@ -17,7 +18,7 @@ docker: tags: - shell -# Template +# SRC Template .build-src: &build-src stage: build-src image: ${DOCKER_IMAGE_DEV}:${DOCKER_TAG_DEV} @@ -48,7 +49,7 @@ build-src-16v29a-12v08: variables: CIM_VERSION: IEC61970_16v29a_IEC61968_12v08 -# Documentation +# Documentation Template .build-doc: &build-doc stage: build-doc image: ${DOCKER_IMAGE_DEV}:${DOCKER_TAG_DEV} @@ -76,4 +77,45 @@ build-doc-17v07: build-doc-16v29a-12v08: <<: *build-doc variables: - CIM_VERSION: IEC61970_16v29a_IEC61968_12v08 \ No newline at end of file + CIM_VERSION: IEC61970_16v29a_IEC61968_12v08 + +# Test Files +.test-files: &test-files + stage: test-files + image: ${DOCKER_IMAGE_DEV}:${DOCKER_TAG_DEV} + tags: + - docker + before_script: + - cd examples/cmake + - mkdir -p build/${CIM_VERSION} && cd build/${CIM_VERSION} + - cmake ../.. -DUSE_CIM_VERSION=${CIM_VERSION} + - make -j8 + script: + - cd ../../../../test/ + - python3 testFiles.py ${CIM_VERSION} + - ls -l + artifacts: + paths: + - test/outputs/${CIM_VERSION} + +test-files-CGMES: + <<: *test-files + variables: + CIM_VERSION: CGMES_2.4.15_27JAN2020 + +test-files-16v29a: + <<: *test-files + variables: + CIM_VERSION: IEC61970_16v29a + +test-files-17v07: + <<: *test-files + variables: + CIM_VERSION: IEC61970_17v07 + +test-files-16v29a-12v08: + <<: *test-files + variables: + CIM_VERSION: IEC61970_16v29a_IEC61968_12v08 + + diff --git a/Dockerfile b/Dockerfile index 64d9abb20..2a590e6df 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ RUN dnf -y install \ gcc-c++ \ make \ doxygen graphviz \ - libxerces-c-dev \ + xerces-c-devel \ python3-pip rpmdevtools diff --git a/examples/src/main.cpp b/examples/src/main.cpp index 14e2f2cbf..43914f4cd 100644 --- a/examples/src/main.cpp +++ b/examples/src/main.cpp @@ -3,11 +3,57 @@ #include "CIMModel.hpp" #include "IEC61970.hpp" #include "CIMExceptions.hpp" - +#include +#include +#include #ifndef CGMES_BUILD #include "CIMNamespaces.hpp" #endif + +std::string getFileName(const std::string& s) { + + char sep = '/'; + + size_t i = s.rfind(sep, s.length()); + if (i != std::string::npos) { + return(s.substr(i+1, s.length() - i)); + } + + return(""); +} + + +std::vector search_folder(const char *path) { + + struct dirent *ent = NULL; + DIR *pDir; + pDir = opendir(path); + std::vector files; + if(NULL == pDir){ + std::cerr << "The specified directory does not exist. " << path<< + " Maybe you want to use the option -f to read a single File" << std::endl; + return files; + } + + while (NULL != (ent = readdir(pDir))) { + std::string _path(path); + std::string _dirName(ent->d_name); + if(strcmp(ent->d_name,".") == 0 || strcmp(ent->d_name,"..") == 0 ) + continue; + std::string file_path = _path + _dirName; + files.push_back(file_path); + } + + return files; +} + +inline bool ends_with(std::string const & value, std::string const & ending) +{ + if (ending.size() > value.size()) return false; + return std::equal(ending.rbegin(), ending.rend(), value.rbegin()); +} + std::string formatName(std::string name) { if (name.length() > 12) { name.resize(10, ' '); @@ -31,11 +77,48 @@ int main(int argc, char** argv) CIMModel someModel; someModel.setDependencyCheckOff(); + bool writeToFile = false; + std::string output_file_name; + std::string some= "wtf"; + std::regex match(".*xml$"); + + + int c; for(int i = 1; i < argc; i++) { + + if(some.compare(argv[i]) == 0){ + writeToFile = true; + continue; + } + std::vector files; if(!someModel.addCIMFile(argv[i])) { - std::cout << "File ' " << argv[i] << " ' is not XML or does not exist" << std::endl; + + if(!ends_with(argv[i], "/")){ + char dest[strlen(argv[i])]; + strcpy(dest, argv[i]); + files = search_folder(strcat(dest, "/")); + } + else{ + files = search_folder(argv[i]); + } + for (auto f : files) + { + if(!std::regex_match(f, match) ){ + std::cout << "is not a .xml file" << ( f )<< " skipping" << std::endl; + }else{ + //std::cout << "CIM-XML file is:" << f << std::endl; + someModel.addCIMFile(f); + } + } + if(files.size() == 0){ + std::cout << "File ' " << argv[i] << " ' is no XML or does not exist" << std::endl; + }else{ + + output_file_name = getFileName(argv[i]); + } + }; } @@ -48,15 +131,21 @@ int main(int argc, char** argv) std::cerr << exp.what() << std::endl; } - - for (BaseClass* Object : someModel.Objects) + std::ofstream myfile; + if(writeToFile == true){ + myfile.open (output_file_name+".IdentifiedObjects.txt"); + } + for (BaseClass* Object : someModel.Objects) { if(CIMPP::IdentifiedObject* IdObj = dynamic_cast(Object)) { if(!IdObj->name.empty()) { static unsigned int i = 0; std::string outputName = formatName(IdObj->name); - std::cout << outputName; + std::cout << outputName; + if(writeToFile == true){ + myfile << formatName(IdObj->name) << std::endl; + } i++; if (i % 5 == 0) { std::cout << std::endl; @@ -64,6 +153,9 @@ int main(int argc, char** argv) } } } + if(writeToFile == true){ + myfile.close(); + } std::cout << std::endl; return 0; } diff --git a/test/create_output.bash b/test/create_output.bash new file mode 100755 index 000000000..9b89285c3 --- /dev/null +++ b/test/create_output.bash @@ -0,0 +1,9 @@ +#!/bin/bash + +fileName=$1 +cimVersion=$2 +currDir=$(pwd) +cd ../examples/cmake/build/$cimVersion + +./example $currDir/xml/$fileName wtf +mv $fileName.IdentifiedObjects.txt $currDir/outputs/$cimVersion/$fileName.IdentifiedObjects.txt diff --git a/test/diff.bash b/test/diff.bash new file mode 100755 index 000000000..8a107d727 --- /dev/null +++ b/test/diff.bash @@ -0,0 +1,7 @@ +#!/bin/bash + +fileName=$1 +cimVersion=$2 +comm -3 <(sort outputs/$cimVersion/$fileName) <(sort solutions/$fileName) + + diff --git a/test/solutions/CIGRE_MV_RightFeeder_NEPLAN.IdentifiedObjects.txt b/test/solutions/CIGRE_MV_RightFeeder_NEPLAN.IdentifiedObjects.txt new file mode 100644 index 000000000..d18bc64e7 --- /dev/null +++ b/test/solutions/CIGRE_MV_RightFeeder_NEPLAN.IdentifiedObjects.txt @@ -0,0 +1,43 @@ +291 +41 +297 +N0 +N12 +N13 +Area 1 +Zone 1 +PATL +TATL +TATL +Load13-I +Load13-I_0 +Load12-H +Load12-H_0 +Load12-I +Load12-I_0 +HV-Netz +HV-Netz_0 +L12-13 +L12-13_0 +L12-13_1 +Ratings +Normal +ShortTerm +Emergency +TR2 +TR2_0 +TR2 +Ratings +Normal +ShortTerm +Emergency +TR2_1 +TR2 +Ratings +Normal +ShortTerm +Emergency +N13 +N12 +N0 +Load6 diff --git a/test/solutions/Slack_Load_Line_Sample.IdentifiedObjects.txt b/test/solutions/Slack_Load_Line_Sample.IdentifiedObjects.txt new file mode 100644 index 000000000..1e93e9114 --- /dev/null +++ b/test/solutions/Slack_Load_Line_Sample.IdentifiedObjects.txt @@ -0,0 +1,23 @@ +Diagram 0 +41 +18467 +N0 +N1 +Area 1 +Zone 1 +PATL +TATL +TATL +PQ0 +PQ0_0 +SL +SL_0 +L0 +L0_0 +L0_1 +Ratings +Normal +ShortTerm +Emergency +N0 +N1 diff --git a/test/testFiles.py b/test/testFiles.py new file mode 100755 index 000000000..0052885fb --- /dev/null +++ b/test/testFiles.py @@ -0,0 +1,77 @@ +#!/usr/bin/python +import subprocess +import filecmp +import os +from os import listdir +from os.path import isfile, join +import sys, os +# Define folder in which xmls are located + +def main(argv): + rootdir = './xml' + print ("ARGS") + cim_version = argv[0] + print (cim_version) + + diffs = 0 + errors = 0 + testedFiles = [] + # Locate all dirs and files in rootdir + dirs = [f for f in os.listdir(rootdir) if not isfile(join(rootdir, f))] + files = [f for f in listdir(rootdir) if isfile(join(rootdir, f))] + if not (os.path.isdir("outputs/")): + bashCommand = "mkdir outputs" + process = subprocess.call(bashCommand.split(), stdout=subprocess.PIPE) + + if not (os.path.isdir("outputs/" + cim_version)): + bashCommand = "mkdir outputs/" + cim_version + process = subprocess.call(bashCommand.split(), stdout=subprocess.PIPE) + + for dir in dirs: + print ("-------------------------------------------") + print ("Create output for folder " + dir) + print ("-------------------------------------------") + bashCommand = "./create_output.bash " + dir + " " + cim_version + process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE) + output, error = process.communicate() + testedFiles.append(dir + ".IdentifiedObjects.txt") + + for file in files: + print ("-------------------------------------------") + print ("Create output for file " +file[0:len(file) - 4] + " " + file[0:len(file) - 4]) + print ("-------------------------------------------") + bashCommand = "./create_output.bash " + file[0:len(file) - 4] + " " + cim_version + process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE) + output, error = process.communicate() + testedFiles.append(file[0:len(file) - 4] + ".IdentifiedObjects.txt") + + # For all files check if they match the expected output. Otherwise print the diffs + for file in testedFiles: + bashCommand = "./diff.bash " + file + " " + cim_version + process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = process.communicate() + print ("-------------------------------------------") + print ("Results of " + file) + print ("-------------------------------------------") + if out and not out.isspace(): + print ("diff") + print (out) + diffs += 1 + elif err and not err.isspace(): + print ("err") + errors += 1 + print (err) + else: + print ("File is okay") + + if diffs == 0 and errors == 0: + print ("Everything fine") + exit(0) + else: + print (diffs, " diffs occured") + print (errors, " errors occured") + exit(1) + + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_DI.xml b/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_DI.xml new file mode 100644 index 000000000..573b07e65 --- /dev/null +++ b/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_DI.xml @@ -0,0 +1,243 @@ + + + + 2016-05-20T11:42:26 + NEPLAN by Busarello + Cott + Partner AG, Switzerland + 2016-05-20T11:42:24 + 7 + + + NEPLAN + Area 1 + http://iec.ch/TC57/61970-453/DiagramLayout/2 + + + Load6 + + + + 0 + + + + + 1 + + 222.800000 + 88.000000 + + + 2 + + 222.800000 + 98.000000 + + + 0 + + + + + 1 + + 237.100000 + 104.000000 + + + 2 + + 236.800000 + 98.000000 + + + 0 + + + + + 1 + + 234.800000 + 142.000000 + + + 2 + + 234.800000 + 138.000000 + + + 0 + + + + + 1 + + 130.900000 + 30.000000 + + + 2 + + 130.800000 + 40.000000 + + + 0 + + + + + 1 + + 222.800000 + 48.000000 + + + 2 + + 222.800000 + 40.000000 + + + 0 + + + + + 1 + + 249.200000 + 104.000000 + + + 2 + + 248.800000 + 98.000000 + + + 0 + + + + + 1 + + 208.800000 + 138.000000 + + + 2 + + 238.800000 + 138.000000 + + + 0 + + + + + 1 + + 204.800000 + 98.000000 + + + 2 + + 254.800000 + 98.000000 + + + 0 + + + + + 1 + + 60.800000 + 40.000000 + + + 2 + + 246.800000 + 40.000000 + + + 0 + + + + + 1 + + 222.800000 + 98.000000 + + + 2 + + 222.800000 + 138.000000 + + + 0 + + + + + 1 + + 222.800000 + 68.000000 + + + -90.000000 + + + + + 1 + + 130.900000 + 19.200000 + + + 0 + + + + + 1 + + 234.800000 + 145.800000 + + + 0 + + + + + 1 + + 237.100000 + 107.800000 + + + 0 + + + + + 1 + + 249.200000 + 107.800000 + + diff --git a/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_EQ.xml b/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_EQ.xml new file mode 100644 index 000000000..77875c014 --- /dev/null +++ b/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_EQ.xml @@ -0,0 +1,345 @@ + + + + 2016-05-20T11:42:26 + NEPLAN by Busarello + Cott + Partner AG, Switzerland + 2016-05-20T11:42:24 + 7 + NEPLAN + Area 1 + http://iec.ch/TC57/61970-452/Equipment/3 + + + description + + + 20.00 + + + 110.00 + + + 291 + + + + + 41 + + + + + 297 + + + + + N0 + + + + N12 + + + + N13 + + + + Area 1 + + + Zone 1 + + + + PATL + 45000 + + + + TATL + 180 + + + + TATL + 60 + + + + Load13-I + false + + + + Load13-I_0 + 1 + + + + Load12-H + false + + + + Load12-H_0 + 1 + + + + Load12-I + false + + + + Load12-I_0 + 1 + + + + NETWORK-FEEDER: + + + + + HV-Netz + false + + true + 0e+000 + 0e+000 + 0e+000 + 0e+000 + 0e+000 + 0e+000 + 0e+000 + 0e+000 + 1.000000 + 1 + + + HV-Netz_0 + 1 + + + + L12-13 + 1.647930 + 1.750620 + 0.0002502210 + 4.890000 + 0.0 + false + + 4.890000 + 4.890000 + 0.0003902047 + 0.0 + 250.0000000000 + + + L12-13_0 + 1 + + + + L12-13_1 + 2 + + + + Ratings for branch L12-13 + + + + + Ratings + + + + + Ratings for line L12-13 - Normal + + + + + Normal + 320.000000 + + + + + Ratings for line L12-13 - ShortTerm + + + + + ShortTerm + 0e+000 + + + + + Ratings for line L12-13 - Emergency + + + + + Emergency + 320.000000 + + + + + TR2 + false + + 0e+000 + 0e+000 + 0e+000 + 0e+000 + false + false + + + TR2_0 + 1 + + + + TR2 + 1.905750 + 36.371106 + -0.0000019835 + 0.0 + 1.905750 + 34.432301 + 0.0 + 0.0 + 0e+000 + 0.0 + 40.000000 + 110.000000 + 1 + 0 + true + + + + + + + Ratings for branch TR2 + + + + + Ratings + + + + + Ratings for line TR2 - Normal + + + + + Normal + 0e+000 + + + + + Ratings for line TR2 - ShortTerm + + + + + ShortTerm + 0e+000 + + + + + Ratings for line TR2 - Emergency + + + + + Emergency + 0e+000 + + + + + TR2_1 + 2 + + + + TR2 + 0e+000 + 0e+000 + 0.0 + 0.0 + 0e+000 + 0e+000 + 0.0 + 0.0 + 0e+000 + 0.0 + 40.000000 + 20.000000 + 2 + 5 + true + + + + + + + Ratings for branch TR2 + + + + + Ratings + + + + + Ratings for line TR2 - Normal + + + + + Normal + 0e+000 + + + + + Ratings for line TR2 - ShortTerm + + + + + ShortTerm + 0e+000 + + + + + Ratings for line TR2 - Emergency + + + + + Emergency + 0e+000 + + + + diff --git a/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_TP.xml b/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_TP.xml new file mode 100644 index 000000000..0d8fcf421 --- /dev/null +++ b/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_Area 1_NE_20J11h_TP.xml @@ -0,0 +1,63 @@ + + + + 2016-05-20T11:42:26 + NEPLAN by Busarello + Cott + Partner AG, Switzerland + 2016-05-20T11:42:24 + 7 + + NEPLAN + Area 1 + http://iec.ch/TC57/61970-456/Topology/3 + + + description + + + N13 + + + + + N12 + + + + + N0 + + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + diff --git a/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_FULL_NE_20J11h_SV.xml b/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_FULL_NE_20J11h_SV.xml new file mode 100644 index 000000000..d1d47ca09 --- /dev/null +++ b/test/xml/CIGRE_MV_RightFeeder_NEPLAN/Rootnet_FULL_NE_20J11h_SV.xml @@ -0,0 +1,44 @@ + + + + 2016-05-20T11:42:26 + NEPLAN by Busarello + Cott + Partner AG, Switzerland + 2016-05-20T11:42:24 + 7 + + + NEPLAN + FULL + http://iec.ch/TC57/61970-456/StateVariables/3 + + + 19.552150 + -3.707720 + + + + 19.605385 + -3.572950 + + + + 110.000000 + -0e+000 + + + + 0.032000 + 0.020000 + + + + 15.000000 + 3.000000 + + + + 5.000000 + 1.700000 + + + diff --git a/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_DI.xml b/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_DI.xml new file mode 100644 index 000000000..a2edc3d8d --- /dev/null +++ b/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_DI.xml @@ -0,0 +1,125 @@ + + + + 2017-10-19T18:34:31 + NEPLAN by Busarello + Cott + Partner AG, Switzerland + 2017-10-19T18:34:28 + 7 + + + NEPLAN + FULL + http://iec.ch/TC57/61970-453/DiagramLayout/2 + + + Diagram 0 + + + + 0 + + + + + 1 + + 88.000000 + 66.000000 + + + 2 + + 88.000000 + 70.000000 + + + 0 + + + + + 1 + + 88.000000 + 90.000000 + + + 2 + + 88.000000 + 86.000000 + + + 0 + + + + + 1 + + 76.000000 + 70.000000 + + + 2 + + 98.000000 + 70.000000 + + + 0 + + + + + 1 + + 77.000000 + 86.000000 + + + 2 + + 99.000000 + 86.000000 + + + 0 + + + + + 1 + + 88.000000 + 70.000000 + + + 2 + + 88.000000 + 86.000000 + + + -90.000000 + + + + + 1 + + 88.000000 + 55.200000 + + + 0 + + + + + 1 + + 88.000000 + 93.800000 + + diff --git a/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_EQ.xml b/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_EQ.xml new file mode 100644 index 000000000..8d8364709 --- /dev/null +++ b/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_EQ.xml @@ -0,0 +1,162 @@ + + + + 2017-10-19T18:34:31 + NEPLAN by Busarello + Cott + Partner AG, Switzerland + 2017-10-19T18:34:28 + 7 + NEPLAN + FULL + http://iec.ch/TC57/61970-452/Equipment/3 + + + description + + + 20.00 + + + 41 + + + + + 18467 + + + + + N0 + + + + N1 + + + + Area 1 + + + Zone 1 + + + + PATL + 45000 + + + + TATL + 180 + + + + TATL + 60 + + + + PQ0 + false + + + + PQ0_0 + 1 + + + + NETWORK-FEEDER: + + + + + SL + false + + true + 43301.000000 + 0e+000 + 0e+000 + 0e+000 + 0e+000 + 0e+000 + 0e+000 + 0e+000 + 1.000000 + 1 + + + SL_0 + 1 + + + + L0 + 1.647930 + 1.750620 + 0.0002502210 + 4.890000 + 0.0 + false + + 4.890000 + 4.890000 + 0.0003902047 + 0.0 + 250.0000000000 + + + L0_0 + 1 + + + + L0_1 + 2 + + + + Ratings for branch L0 + + + + + Ratings + + + + + Ratings for line L0 - Normal + + + + + Normal + 320.000000 + + + + + Ratings for line L0 - ShortTerm + + + + + ShortTerm + 0e+000 + + + + + Ratings for line L0 - Emergency + + + + + Emergency + 320.000000 + + + + diff --git a/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_SV.xml b/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_SV.xml new file mode 100644 index 000000000..d7db45fb0 --- /dev/null +++ b/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_SV.xml @@ -0,0 +1,29 @@ + + + + 2017-10-19T18:34:31 + NEPLAN by Busarello + Cott + Partner AG, Switzerland + 2017-10-19T18:34:28 + 7 + + + NEPLAN + FULL + http://iec.ch/TC57/61970-456/StateVariables/3 + + + 20.000000 + 0e+000 + + + + 0e+000 + 0e+000 + + + + 0e+000 + 0e+000 + + + diff --git a/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_TP.xml b/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_TP.xml new file mode 100644 index 000000000..ade57216c --- /dev/null +++ b/test/xml/Slack_Load_Line_Sample/Rootnet_FULL_NE_19J18h_TP.xml @@ -0,0 +1,42 @@ + + + + 2017-10-19T18:34:31 + NEPLAN by Busarello + Cott + Partner AG, Switzerland + 2017-10-19T18:34:28 + 7 + + NEPLAN + FULL + http://iec.ch/TC57/61970-456/Topology/3 + + + description + + + N0 + + + + + N1 + + + + + true + + + + true + + + + true + + + + true + + +