Invocation: verify connectivity on complex network

This commit is contained in:
Fischlurch 2025-02-08 22:42:13 +01:00
parent dbbdac02c4
commit d54dbc93df
2 changed files with 98 additions and 63 deletions

View file

@ -19,7 +19,7 @@
#include "lib/test/run.hpp"
#include "steam/engine/proc-node.hpp"
#include "steam/engine/node-builder.hpp"
#include "steam/engine/test-rand-ontology.hpp" ///////////TODO
#include "steam/engine/test-rand-ontology.hpp"
#include "lib/test/diagnostic-output.hpp"/////////////////TODO
#include "lib/util.hpp"
@ -27,7 +27,6 @@
using std::array;
using util::isnil;
//using std::string;
using util::isSameObject;
@ -119,7 +118,16 @@ namespace test {
/** @test Build more elaborate Render Nodes linked into a connectivity network
* @todo WIP 1/25 🔁 define implement
* - verify nodes with several ports; at exit-level, 3 ports are available
* - using two different source nodes, one with two, one with three ports
* - the 2-port source is linearly chained to a 2-port filter node
* - the exit-level is a mix node, combining data from both chains
* - apply the automatic wiring of ports with the same number, whereby
* the first port connects to the first port on the lead, and so on.
* - yet for the 3rd port at the mix node, on one side the port number
* must be given explicitly, since the »A-side« chain offers only
* two ports.
* @todo 1/25 define implement
*/
void
build_connected_nodes()
@ -143,11 +151,11 @@ namespace test {
auto add1_op = [](int* src, int* res){ *res = 1 + *src; };
ProcNode n1f{prepareNode("filterA")
.preparePort()
.invoke("+1(int)(int)", add1_op)
.invoke("a+1(int)(int)", add1_op)
.connectLead(n1s)
.completePort()
.preparePort()
.invoke("+1(int)(int)", add1_op)
.invoke("b+1(int)(int)", add1_op)
.connectLead(n1s)
.completePort()
.build()};
@ -211,7 +219,7 @@ namespace test {
CHECK (watch(n2s).getNodeSpec() == "srcB-◎"_expect );
CHECK (watch(mix).getNodeSpec() == "mix┉┉{srcA, srcB}"_expect);
// verify setup of th source nodes
// verify setup of the source nodes
CHECK (watch(n1s).ports().size() == 2 );
CHECK (watch(n1s).watchPort(0).isSrc());
CHECK (watch(n1s).watchPort(1).isSrc());
@ -220,6 +228,7 @@ namespace test {
CHECK (watch(n1s).getPortSpec(0) == "srcA.a(int)"_expect );
CHECK (watch(n1s).getPortSpec(1) == "srcA.b(int)"_expect );
// second source node has 3 ports....
CHECK (watch(n2s).ports().size() == 3 );
CHECK (watch(n2s).watchPort(0).isSrc());
CHECK (watch(n2s).watchPort(1).isSrc());
@ -241,6 +250,35 @@ namespace test {
CHECK (watch(n1f).watchLead(0).watchPort(0).getProcSpec() == "srcA.a(int)"_expect );
CHECK (watch(n1f).watchPort(0).srcPorts()[0] == watch(n1f).watchLead(0).ports()[0]);
CHECK (watch(n1f).watchPort(1).srcPorts()[0] == watch(n1f).watchLead(0).ports()[1]);
// verify mix with 3 ports
CHECK (watch(mix).leads().size() == 2);
CHECK (watch(mix).leads()[0] == n1f );
CHECK (watch(mix).leads()[1] == n2s );
CHECK (watch(mix).ports().size() == 3);
CHECK (watch(mix).watchPort(0).srcPorts().size() == 2 );
CHECK (watch(mix).watchPort(1).srcPorts().size() == 2 );
CHECK (watch(mix).watchPort(2).srcPorts().size() == 2 );
CHECK (watch(mix).watchLead(0).ports().size() == 2 );
CHECK (watch(mix).watchLead(1).ports().size() == 3 );
CHECK (watch(mix).watchPort(0).watchLead(0).getProcName() == "filterA.a+1"_expect );
CHECK (watch(mix).watchLead(0).watchPort(0).getProcName() == "filterA.a+1"_expect );
CHECK (watch(mix).watchPort(1).watchLead(0).getProcName() == "filterA.b+1"_expect );
CHECK (watch(mix).watchLead(0).watchPort(1).getProcName() == "filterA.b+1"_expect );
CHECK (watch(mix).watchPort(2).watchLead(0).getProcName() == "filterA.b+1"_expect ); // special connection to port 1 on lead
CHECK (watch(mix).watchLead(0).watchPort(1).getProcName() == "filterA.b+1"_expect );
CHECK (watch(mix).watchPort(0).srcPorts()[0] == watch(mix).watchLead(0).ports()[0]);
CHECK (watch(mix).watchPort(1).srcPorts()[0] == watch(mix).watchLead(0).ports()[1]);
CHECK (watch(mix).watchPort(2).srcPorts()[0] == watch(mix).watchLead(0).ports()[1]);
CHECK (watch(mix).watchPort(0).watchLead(1).getProcName() == "srcB.a"_expect );
CHECK (watch(mix).watchLead(1).watchPort(0).getProcName() == "srcB.a"_expect );
CHECK (watch(mix).watchPort(1).watchLead(1).getProcName() == "srcB.b"_expect );
CHECK (watch(mix).watchLead(1).watchPort(1).getProcName() == "srcB.b"_expect );
CHECK (watch(mix).watchPort(2).watchLead(1).getProcName() == "srcB.c"_expect );
CHECK (watch(mix).watchLead(1).watchPort(2).getProcName() == "srcB.c"_expect );
CHECK (watch(mix).watchPort(0).srcPorts()[1] == watch(mix).watchLead(1).ports()[0]);
CHECK (watch(mix).watchPort(1).srcPorts()[1] == watch(mix).watchLead(1).ports()[1]);
CHECK (watch(mix).watchPort(2).srcPorts()[1] == watch(mix).watchLead(1).ports()[2]);
}

View file

@ -92380,9 +92380,9 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<arrowlink COLOR="#4a83b7" DESTINATION="ID_208674861" ENDARROW="Default" ENDINCLINATION="-781;83;" ID="Arrow_ID_1861027884" STARTARROW="None" STARTINCLINATION="-1002;-113;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1718925986694" ID="ID_1898452649" MODIFIED="1718926069047" TEXT="Struktur der Connectivity neu aufbauen">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1718925986694" ID="ID_1898452649" MODIFIED="1739050484131" TEXT="Struktur der Connectivity neu aufbauen">
<arrowlink COLOR="#80418c" DESTINATION="ID_1064805768" ENDARROW="Default" ENDINCLINATION="347;215;" ID="Arrow_ID_1648312561" STARTARROW="None" STARTINCLINATION="148;-17;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1718927862012" ID="ID_943512919" MODIFIED="1719191518521" TEXT="diesen Code einfach nur zu verwenden w&#xe4;re verantwortungslos">
<arrowlink COLOR="#b80202" DESTINATION="ID_80068724" ENDARROW="Default" ENDINCLINATION="16;334;" ID="Arrow_ID_261689280" STARTARROW="Default" STARTINCLINATION="0;-193;"/>
<icon BUILTIN="smily_bad"/>
@ -92405,8 +92405,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="full-5"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1718932623301" ID="ID_574547501" MODIFIED="1718932634563" TEXT="daraus den reinen Connectivity-Part extrahieren">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1718932623301" ID="ID_574547501" MODIFIED="1739050497751" TEXT="daraus den reinen Connectivity-Part extrahieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1718967556296" ID="ID_777505189" MODIFIED="1719971952467" TEXT="eine Node hat P Ports">
<node CREATED="1718969877437" ID="ID_728636253" MODIFIED="1718969889167" TEXT="hinter jedem Port sitzt als Implementierung ein Turnout"/>
<node CREATED="1718970502272" ID="ID_1448540692" MODIFIED="1718970521792" TEXT="dieser wiederum kennt seine Vorg&#xe4;nger-Ports (irgendwo auf den Leads)"/>
@ -103075,7 +103075,6 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1730821117360" ID="ID_887734089" MODIFIED="1738780813039" TEXT="komplexere Node-Trees">
<linktarget COLOR="#3e2e67" DESTINATION="ID_887734089" ENDARROW="Default" ENDINCLINATION="-520;56;" ID="Arrow_ID_652403485" SOURCE="ID_21649970" STARTARROW="None" STARTINCLINATION="91;7;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1730827675866" ID="ID_97803520" MODIFIED="1730830237210" TEXT="Auspr&#xe4;gungen">
<linktarget COLOR="#3e56b6" DESTINATION="ID_97803520" ENDARROW="Default" ENDINCLINATION="-355;-656;" ID="Arrow_ID_552101308" SOURCE="ID_1277388080" STARTARROW="None" STARTINCLINATION="874;55;"/>
@ -103332,8 +103331,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
das ist <font color="#cf1c1c">inhaltlich falsch</font>!
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#c81e08" CREATED="1739030627173" ID="ID_810230825" MODIFIED="1739030658053" TEXT="auch die Mix-Node hat 6 leads (statt 2)">
<icon BUILTIN="broken-line"/>
@ -103353,8 +103351,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
&#10233; jeder Lead erscheint als neu
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<arrowlink COLOR="#55ca66" DESTINATION="ID_1710618810" ENDARROW="Default" ENDINCLINATION="147;-25;" ID="Arrow_ID_255484303" STARTARROW="None" STARTINCLINATION="-322;25;"/>
<icon BUILTIN="broken-line"/>
</node>
@ -103396,8 +103393,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
die Proc-ID ist hier nur der Implementierungs-Ort, weil es auf der Node selber gar keine entsprechende Einrichtung gibt&#160;&#8212;&#160;der Node-Name ist in die Proc-ID aufgedoppelt, um auch f&#252;r einen Port noch eine sinnvolle Diagnostik zu bieten; diese Redundanz nehme ich in Kauf (ist jeweils ein Pointer); im Gegenzug verzichte ich aber auf eine separate Node-ID, indem die Proc-ID hilfsweise auch die Node-Spec mit implemenitert
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<linktarget COLOR="#926d62" DESTINATION="ID_589945353" ENDARROW="Default" ENDINCLINATION="-971;0;" ID="Arrow_ID_1627818270" SOURCE="ID_1418989177" STARTARROW="None" STARTINCLINATION="1611;-213;"/>
<icon BUILTIN="stop-sign"/>
</node>
@ -103421,8 +103417,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1728786023206" ID="ID_827177241" MODIFIED="1728786051330" TEXT="Node-pull()">
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728786023206" ID="ID_827177241" MODIFIED="1739055546924" TEXT="Node-pull()">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728786069167" ID="ID_1584473368" MODIFIED="1728786088974" TEXT="Aufruf-Pfad durchimplementieren">
<icon BUILTIN="flag-pink"/>
<node COLOR="#338800" CREATED="1733531749477" ID="ID_1587342377" MODIFIED="1736090833512" TEXT="Param-Functor im NodeBuilder_test anlegen">
@ -103455,9 +103451,10 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1731890254602" ID="ID_447051297" MODIFIED="1734388971845" TEXT="brauche Buffer">
<arrowlink COLOR="#bb4c6b" DESTINATION="ID_1319945622" ENDARROW="Default" ENDINCLINATION="-663;35;" ID="Arrow_ID_542692149" STARTARROW="None" STARTINCLINATION="745;112;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1734653165700" HGAP="21" ID="ID_159987338" MODIFIED="1734654458033" TEXT="unklar wie weit BufferProvider entwickelt ist" VSHIFT="51">
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1734653165700" HGAP="21" ID="ID_159987338" MODIFIED="1739055589390" TEXT="unklar wie weit BufferProvider entwickelt ist" VSHIFT="51">
<linktarget COLOR="#cc6e7f" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="-37;-657;" ID="Arrow_ID_717618496" SOURCE="ID_1168268714" STARTARROW="None" STARTINCLINATION="827;61;"/>
<linktarget COLOR="#cc6e7f" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="1184;730;" ID="Arrow_ID_544228779" SOURCE="ID_1155618733" STARTARROW="Default" STARTINCLINATION="128;-1039;"/>
<linktarget COLOR="#963260" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="-152;10;" ID="Arrow_ID_371475437" SOURCE="ID_1573345464" STARTARROW="None" STARTINCLINATION="236;-15;"/>
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1735004660507" ID="ID_1747509213" LINK="https://issues.lumiera.org/ticket/1387" MODIFIED="1736092774165" TEXT="#1387 Buffer Memory Handling konsolidieren">
<linktarget COLOR="#ff2921" DESTINATION="ID_1747509213" ENDARROW="Default" ENDINCLINATION="-965;-57;" ID="Arrow_ID_1750574936" SOURCE="ID_1088386150" STARTARROW="None" STARTINCLINATION="1192;64;"/>
@ -104020,6 +104017,14 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node COLOR="#338800" CREATED="1728785939337" ID="ID_642847753" MODIFIED="1736120593064" TEXT="einfachste Berechnung direkt verifizieren">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1739055425419" ID="ID_1573345464" MODIFIED="1739055598085" TEXT="schon mal einen einfachen verketteten Aufruf durchf&#xfc;hren">
<arrowlink COLOR="#963260" DESTINATION="ID_159987338" ENDARROW="Default" ENDINCLINATION="-152;10;" ID="Arrow_ID_371475437" STARTARROW="None" STARTINCLINATION="236;-15;"/>
<linktarget COLOR="#c6074b" DESTINATION="ID_1573345464" ENDARROW="Default" ENDINCLINATION="-393;16;" ID="Arrow_ID_1069316" SOURCE="ID_704199650" STARTARROW="None" STARTINCLINATION="446;-9;"/>
<icon BUILTIN="flag-pink"/>
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1739056024968" ID="ID_605383318" MODIFIED="1739056038505" TEXT="Probleme mit Buffer-Weitergabe">
<icon BUILTIN="broken-line"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1732848067281" HGAP="40" ID="ID_645445153" MODIFIED="1733009598698" VSHIFT="61">
@ -105054,8 +105059,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<u>Fazit</u>: Weaving-Patterns
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="forward"/>
<node CREATED="1738782137470" ID="ID_1230566" MODIFIED="1738782147437" TEXT="sind Templates"/>
@ -105251,8 +105255,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
w&#228;re n&#228;mlich zus&#228;tzlicher Coding-Aufwand &#8212; und dabei weitgehend redundant
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<arrowlink COLOR="#926d62" DESTINATION="ID_589945353" ENDARROW="Default" ENDINCLINATION="-971;0;" ID="Arrow_ID_1627818270" STARTARROW="None" STARTINCLINATION="1611;-213;"/>
</node>
<node CREATED="1739034685324" ID="ID_593749304" MODIFIED="1739034697693" TEXT="Erfahrungen fehlen"/>
@ -106961,8 +106964,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
Da wir nun weitgehend auf explizite Typisierung und Templates setzen (Tupel als Argumente der Processing-Function), sind Detail-Implementierungen in den Spezialisierungen der Weaving-Pattern untergebracht, oder werden sogar als Funktoren aus dem Library-Plug-in eingebunden
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1738779694408" ID="ID_447622421" MODIFIED="1738779714617" TEXT="hier ist die statische Proc-ID-Registry"/>
@ -106983,8 +106985,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<icon BUILTIN="full-2"/>
</node>
</node>
<node COLOR="#338800" CREATED="1719182150605" ID="ID_1115772240" MODIFIED="1736199367614" TEXT="pr&#xfc;fen...">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1719182150605" ID="ID_1115772240" MODIFIED="1739055032196" TEXT="pr&#xfc;fen...">
<icon BUILTIN="yes"/>
<node COLOR="#435e98" CREATED="1719182162476" ID="ID_216827263" MODIFIED="1736199363116" TEXT="Zahl der Leads und Ports">
<icon BUILTIN="full-1"/>
</node>
@ -106997,9 +106999,10 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1718843534139" ID="ID_1144935511" MODIFIED="1736199129906" TEXT="Nodes verschalten">
<icon BUILTIN="full-2"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719181051848" ID="ID_710807643" MODIFIED="1736198513549" TEXT="Ziel f&#xfc;r diesen Testfall">
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1719181051848" ID="ID_710807643" MODIFIED="1739055018017" TEXT="Ziel f&#xfc;r diesen Testfall">
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1719181203922" ID="ID_714901077" MODIFIED="1738780574677" TEXT="Nodes bauen">
<node COLOR="#338800" CREATED="1719181203922" ID="ID_714901077" MODIFIED="1739055346407" TEXT="Nodes bauen">
<linktarget COLOR="#6c93a5" DESTINATION="ID_714901077" ENDARROW="Default" ENDINCLINATION="-233;459;" ID="Arrow_ID_1485759596" SOURCE="ID_18210204" STARTARROW="None" STARTINCLINATION="-46;-750;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1719181208787" ID="ID_1250657715" MODIFIED="1738780918048" TEXT="eine Quell-Node mit zwei Ports">
<arrowlink COLOR="#8f9395" DESTINATION="ID_1690108933" ENDARROW="Default" ENDINCLINATION="-673;69;" ID="Arrow_ID_603018030" STARTARROW="None" STARTINCLINATION="421;37;"/>
@ -107024,8 +107027,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
in einer einzigen Test-Node-Topologie
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head/>
<body>
@ -107044,16 +107046,15 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</li>
</ul>
</body>
</html>
</richcontent>
</html></richcontent>
<node CREATED="1738780543861" ID="ID_1280984212" MODIFIED="1738780555719" TEXT="Ein &#xbb;Mixer&#xab; mit Side-Chain"/>
<node CREATED="1738781041807" ID="ID_255215826" MODIFIED="1738781054076" TEXT="der Haupt-Chain hat nur zwei Ports"/>
<node CREATED="1738781055144" ID="ID_310569500" MODIFIED="1738781066942" TEXT="eine Seiten-Quelle mit drei Ports"/>
<node CREATED="1738781068079" ID="ID_1353238399" MODIFIED="1738781083193" TEXT="im Mixer mu&#xdf; dann eine Seite vom Haupt-chain aufgedoppelt werden"/>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1719182150605" ID="ID_126580500" MODIFIED="1738940208107" TEXT="pr&#xfc;fen...">
<icon BUILTIN="flag-pink"/>
<node COLOR="#338800" CREATED="1719182150605" ID="ID_126580500" MODIFIED="1739055026123" TEXT="pr&#xfc;fen...">
<icon BUILTIN="yes"/>
<node COLOR="#5b280f" CREATED="1719182162476" ID="ID_355546806" MODIFIED="1738780309341" TEXT="hinter jedem Port steckt ein markierter Turnout">
<icon BUILTIN="full-1"/>
<icon BUILTIN="button_cancel"/>
@ -107067,23 +107068,24 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
<node CREATED="1738780418075" ID="ID_1431577122" MODIFIED="1738780430546" TEXT="insofern gibt es (nur) die Garantie durch den Compiler"/>
</node>
<node CREATED="1738972363922" ID="ID_820093867" LINK="#ID_527618200" MODIFIED="1738972387678" TEXT="Verbindungen im Detail pr&#xfc;fen">
<node CREATED="1719182222333" ID="ID_1242784088" MODIFIED="1738972353510" TEXT="Verschaltung">
<node COLOR="#338800" CREATED="1738972363922" ID="ID_820093867" LINK="#ID_527618200" MODIFIED="1739054998237" TEXT="Verbindungen im Detail pr&#xfc;fen">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1719182222333" ID="ID_1242784088" MODIFIED="1739050529214" TEXT="Verschaltung">
<icon BUILTIN="full-2"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719182335669" ID="ID_1034553119" MODIFIED="1738781221667" TEXT="jeder Turnout hat einen Quell-Port">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1719182335669" ID="ID_1034553119" MODIFIED="1739050525889" TEXT="jeder Turnout hat einen Quell-Port">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719182351192" ID="ID_1019047230" MODIFIED="1738781224077" TEXT="diese ensprechen den Ports des Lead">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1719182351192" ID="ID_1019047230" MODIFIED="1739050525889" TEXT="diese ensprechen den Ports des Lead">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1719182383030" ID="ID_1714593159" MODIFIED="1738972357622" TEXT="Verschaltung">
<node COLOR="#435e98" CREATED="1719182383030" ID="ID_1714593159" MODIFIED="1739055000892" TEXT="Verschaltung">
<icon BUILTIN="full-3"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719182426384" ID="ID_161510177" MODIFIED="1738781245527" TEXT="jeder der drei Turnouts hat Quell-Port der auf einen der Leads f&#xfc;hrt">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1719182426384" ID="ID_161510177" MODIFIED="1739055003427" TEXT="jeder der drei Turnouts hat Quell-Port der auf einen der Leads f&#xfc;hrt">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719184331652" ID="ID_1422155228" MODIFIED="1738781248141" TEXT="die anderen sind jeweils belegt wie im Setup konfiguriert">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1719184331652" ID="ID_1422155228" MODIFIED="1739055005202" TEXT="die anderen sind jeweils belegt wie im Setup konfiguriert">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
@ -107105,13 +107107,16 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728785339793" HGAP="96" ID="ID_1367192130" MODIFIED="1728785358620" TEXT="eine reine Quell-Node" VSHIFT="-13">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1728785339793" HGAP="89" ID="ID_1367192130" MODIFIED="1739055183093" TEXT="eine reine Quell-Node" VSHIFT="-1">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728785462721" ID="ID_623146928" MODIFIED="1728785648725" TEXT="Prototyping des Aufrufs">
<arrowlink COLOR="#ed384d" DESTINATION="ID_1973895762" ENDARROW="Default" ENDINCLINATION="-1324;220;" ID="Arrow_ID_95845616" STARTARROW="None" STARTINCLINATION="481;51;"/>
<icon BUILTIN="pencil"/>
</node>
</node>
<node COLOR="#338800" CREATED="1728785339793" HGAP="89" ID="ID_699668988" MODIFIED="1739055191919" TEXT="verkn&#xfc;pfte Nodes" VSHIFT="-24">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719185943913" ID="ID_393811539" MODIFIED="1719185992634" TEXT="was ist die Identit&#xe4;t einer Node?">
<icon BUILTIN="help"/>
@ -107313,8 +107318,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719186096499" ID="ID_1104635186" MODIFIED="1719186122029" TEXT="Diagnose-Setup">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719186160563" ID="ID_1991257351" MODIFIED="1719186169979" TEXT="Interna eines Turnout auslesen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1719186160563" ID="ID_1991257351" MODIFIED="1739055380228" TEXT="Interna eines Turnout auslesen">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719186204738" ID="ID_228985489" MODIFIED="1719186208982" TEXT="Testdatenquelle">
<icon BUILTIN="flag-yellow"/>
@ -107343,8 +107348,9 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<edge COLOR="#fe6f46"/>
<icon BUILTIN="full-3"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#5e0646" CREATED="1719964597362" ID="ID_704199650" MODIFIED="1738779415758" STYLE="bubble" TEXT="Ende-zu-Ende-Aufruf">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#5e0646" CREATED="1719964597362" ID="ID_704199650" MODIFIED="1739055458080" STYLE="bubble" TEXT="Ende-zu-Ende-Aufruf">
<edge COLOR="#fe6f46"/>
<arrowlink COLOR="#c6074b" DESTINATION="ID_1573345464" ENDARROW="Default" ENDINCLINATION="-393;16;" ID="Arrow_ID_1069316" STARTARROW="None" STARTINCLINATION="446;-9;"/>
<icon BUILTIN="full-4"/>
</node>
</node>
@ -107355,18 +107361,9 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719181051848" ID="ID_27361429" MODIFIED="1736198513549" TEXT="Ziel f&#xfc;r diesen Testfall">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719181203922" ID="ID_18210204" MODIFIED="1736199141702" TEXT="wieder gleichartige Nodes bauen">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719181203922" ID="ID_18210204" MODIFIED="1739055346407" TEXT="wieder einen gleichartigen Node-Graphen bauen">
<arrowlink COLOR="#6c93a5" DESTINATION="ID_714901077" ENDARROW="Default" ENDINCLINATION="-233;459;" ID="Arrow_ID_1485759596" STARTARROW="None" STARTINCLINATION="-46;-750;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1719181208787" ID="ID_238523190" MODIFIED="1736198376086" TEXT="eine Quell-Node mit zwei Ports">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1719181289558" ID="ID_21649970" MODIFIED="1730821455462" TEXT="Node mit einem Lead und zwei Ports">
<arrowlink COLOR="#3e2e67" DESTINATION="ID_887734089" ENDARROW="Default" ENDINCLINATION="-520;56;" ID="Arrow_ID_652403485" STARTARROW="None" STARTINCLINATION="91;7;"/>
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1719181653608" ID="ID_1230906484" MODIFIED="1719182255048" TEXT="Node mit zwei Leads und drei Ports">
<icon BUILTIN="full-3"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736199146057" ID="ID_511222539" MODIFIED="1736199156033" TEXT="aber dieses Mal mit TestRandOntology">
<icon BUILTIN="pencil"/>