From 65d8afc8b98171a30b6fc78f308255832db343dd Mon Sep 17 00:00:00 2001 From: Florian Dupuy Date: Wed, 20 Oct 2021 10:58:31 +0200 Subject: [PATCH] Adding tests Signed-off-by: Florian Dupuy --- .../java/com/powsybl/nad/AbstractTest.java | 44 +- .../java/com/powsybl/nad/SvgWriterTest.java | 49 +- src/test/resources/IEEE_118_bus.svg | 676 ++++++++ src/test/resources/IEEE_118_bus.xiidm | 1384 +++++++++++++++++ src/test/resources/IEEE_14_bus.svg | 94 ++ src/test/resources/IEEE_14_bus.xiidm | 162 ++ src/test/resources/IEEE_24_bus.svg | 152 ++ src/test/resources/IEEE_24_bus.xiidm | 386 +++++ src/test/resources/IEEE_30_bus.svg | 241 ++- src/test/resources/IEEE_57_bus.svg | 326 ++++ src/test/resources/IEEE_57_bus.xiidm | 596 +++++++ 11 files changed, 4024 insertions(+), 86 deletions(-) create mode 100644 src/test/resources/IEEE_118_bus.svg create mode 100644 src/test/resources/IEEE_118_bus.xiidm create mode 100644 src/test/resources/IEEE_14_bus.svg create mode 100644 src/test/resources/IEEE_14_bus.xiidm create mode 100644 src/test/resources/IEEE_24_bus.svg create mode 100644 src/test/resources/IEEE_24_bus.xiidm create mode 100644 src/test/resources/IEEE_57_bus.svg create mode 100644 src/test/resources/IEEE_57_bus.xiidm diff --git a/src/test/java/com/powsybl/nad/AbstractTest.java b/src/test/java/com/powsybl/nad/AbstractTest.java index dd783d0d..6b5e84c6 100644 --- a/src/test/java/com/powsybl/nad/AbstractTest.java +++ b/src/test/java/com/powsybl/nad/AbstractTest.java @@ -13,7 +13,6 @@ import com.powsybl.nad.layout.ForcedLayout; import com.powsybl.nad.layout.LayoutParameters; import com.powsybl.nad.model.Graph; -import com.powsybl.nad.svg.DefaultStyleProvider; import com.powsybl.nad.svg.StyleProvider; import com.powsybl.nad.svg.SvgParameters; import com.powsybl.nad.svg.SvgWriter; @@ -27,26 +26,49 @@ */ public abstract class AbstractTest { - protected LayoutParameters getLayoutParameters() { - return new LayoutParameters(); - } + protected boolean debugSvg = false; + protected boolean overrideTestReferences = false; - private SvgParameters getSvgParameters() { - return new SvgParameters(); - } + protected abstract LayoutParameters getLayoutParameters(); - private StyleProvider getStyleProvider() { - return new DefaultStyleProvider(); - } + protected abstract SvgParameters getSvgParameters(); + + protected abstract StyleProvider getStyleProvider(); - protected String generateSvgString(Network network) { + protected String generateSvgString(Network network, String refFilename) { Graph graph = new NetworkGraphBuilder(network, new IntIdProvider()).buildGraph(); new ForcedLayout().run(graph, getLayoutParameters()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); new SvgWriter(getSvgParameters(), getStyleProvider()).writeSvg(graph, baos); + if (debugSvg) { + writeToHomeDir(refFilename, baos); + } + if (overrideTestReferences) { + overrideTestReference(refFilename, baos); + } return baos.toString(); } + private void writeToHomeDir(String refFilename, ByteArrayOutputStream baos) { + try (OutputStream fos = new FileOutputStream(new File(System.getProperty("user.home"), refFilename))) { + baos.writeTo(fos); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void overrideTestReference(String filename, ByteArrayOutputStream baos) { + File testReference = new File("src/test/resources", filename); + if (!testReference.exists()) { + return; + } + try (OutputStream os = new FileOutputStream(testReference)) { + baos.writeTo(os); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + protected String toString(String resourceName) { try { InputStream in = Objects.requireNonNull(getClass().getResourceAsStream(resourceName)); diff --git a/src/test/java/com/powsybl/nad/SvgWriterTest.java b/src/test/java/com/powsybl/nad/SvgWriterTest.java index ec4354a5..704bfc03 100644 --- a/src/test/java/com/powsybl/nad/SvgWriterTest.java +++ b/src/test/java/com/powsybl/nad/SvgWriterTest.java @@ -8,6 +8,10 @@ import com.powsybl.iidm.import_.Importers; import com.powsybl.iidm.network.Network; +import com.powsybl.nad.layout.LayoutParameters; +import com.powsybl.nad.svg.DefaultStyleProvider; +import com.powsybl.nad.svg.StyleProvider; +import com.powsybl.nad.svg.SvgParameters; import org.junit.jupiter.api.Test; import java.net.URL; @@ -20,11 +24,54 @@ */ public class SvgWriterTest extends AbstractTest { + @Override + protected LayoutParameters getLayoutParameters() { + return new LayoutParameters(); + } + + @Override + protected SvgParameters getSvgParameters() { + return new SvgParameters().setInsertName(true); + } + + @Override + protected StyleProvider getStyleProvider() { + return new DefaultStyleProvider(); + } + @Test void testIEEE30() { URL url = Objects.requireNonNull(getClass().getResource("/IEEE_30_bus.xiidm")); Network network = Importers.loadNetwork(url.getFile()); - assertEquals(toString("/IEEE_30_bus.svg"), generateSvgString(network)); + assertEquals(toString("/IEEE_30_bus.svg"), generateSvgString(network, "/IEEE_30_bus.svg")); + } + + @Test + void testIEEE14() { + URL url = Objects.requireNonNull(getClass().getResource("/IEEE_14_bus.xiidm")); + Network network = Importers.loadNetwork(url.getFile()); + assertEquals(toString("/IEEE_14_bus.svg"), generateSvgString(network, "/IEEE_14_bus.svg")); + } + + @Test + void testIEEE24() { + URL url = Objects.requireNonNull(getClass().getResource("/IEEE_24_bus.xiidm")); + Network network = Importers.loadNetwork(url.getFile()); + assertEquals(toString("/IEEE_24_bus.svg"), generateSvgString(network, "/IEEE_24_bus.svg")); + } + + @Test + void testIEEE57() { + URL url = Objects.requireNonNull(getClass().getResource("/IEEE_57_bus.xiidm")); + Network network = Importers.loadNetwork(url.getFile()); + assertEquals(toString("/IEEE_57_bus.svg"), generateSvgString(network, "/IEEE_57_bus.svg")); + } + + @Test + void testIEEE118() { + URL url = Objects.requireNonNull(getClass().getResource("/IEEE_118_bus.xiidm")); + Network network = Importers.loadNetwork(url.getFile()); + assertEquals(toString("/IEEE_118_bus.svg"), generateSvgString(network, "/IEEE_118_bus.svg")); } } diff --git a/src/test/resources/IEEE_118_bus.svg b/src/test/resources/IEEE_118_bus.svg new file mode 100644 index 00000000..227fe836 --- /dev/null +++ b/src/test/resources/IEEE_118_bus.svg @@ -0,0 +1,676 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + diff --git a/src/test/resources/IEEE_118_bus.xiidm b/src/test/resources/IEEE_118_bus.xiidm new file mode 100644 index 00000000..3052c7ab --- /dev/null +++ b/src/test/resources/IEEE_118_bus.xiidm @@ -0,0 +1,1384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/IEEE_14_bus.svg b/src/test/resources/IEEE_14_bus.svg new file mode 100644 index 00000000..85b65b83 --- /dev/null +++ b/src/test/resources/IEEE_14_bus.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + diff --git a/src/test/resources/IEEE_14_bus.xiidm b/src/test/resources/IEEE_14_bus.xiidm new file mode 100644 index 00000000..7a3341bb --- /dev/null +++ b/src/test/resources/IEEE_14_bus.xiidm @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/IEEE_24_bus.svg b/src/test/resources/IEEE_24_bus.svg new file mode 100644 index 00000000..2d0c96a1 --- /dev/null +++ b/src/test/resources/IEEE_24_bus.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + diff --git a/src/test/resources/IEEE_24_bus.xiidm b/src/test/resources/IEEE_24_bus.xiidm new file mode 100644 index 00000000..45a409c7 --- /dev/null +++ b/src/test/resources/IEEE_24_bus.xiidm @@ -0,0 +1,386 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/IEEE_30_bus.svg b/src/test/resources/IEEE_30_bus.svg index 69d1bc38..4f3893a9 100644 --- a/src/test/resources/IEEE_30_bus.svg +++ b/src/test/resources/IEEE_30_bus.svg @@ -1,6 +1,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + diff --git a/src/test/resources/IEEE_57_bus.svg b/src/test/resources/IEEE_57_bus.svg new file mode 100644 index 00000000..01fb6d02 --- /dev/null +++ b/src/test/resources/IEEE_57_bus.svg @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + diff --git a/src/test/resources/IEEE_57_bus.xiidm b/src/test/resources/IEEE_57_bus.xiidm new file mode 100644 index 00000000..f036662e --- /dev/null +++ b/src/test/resources/IEEE_57_bus.xiidm @@ -0,0 +1,596 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +