Invocation: now able to return to integration testing effort

...which aims at building up increasingly more complex Node Graphs,
to validate that all clauses are defined and connected properly.

Reconsidering the testing plan: initially especially this test was aimed
primarily at driving me through the construction of the Node builder and
connection scheme. Surprisingly enough, already the first test case basically
forced the complete construction, by setting me on tangential routes,
notably the **parameter handling**.

Now I'm returning to this test plan with an already finished construction,
and thus it can be straightened just to give enough coverage to validate
the correctness of this construction...
This commit is contained in:
Fischlurch 2025-01-06 22:51:00 +01:00
parent e47f1db8c5
commit 890cba49a2
3 changed files with 242 additions and 74 deletions

View file

@ -298,11 +298,11 @@ namespace engine {
private:
PortBuilderRoot(NodeBuilder<POL>&& anchor)
: NodeBuilder<POL>{move(anchor)}
PortBuilderRoot(NodeBuilder<POL,DAT>&& anchor)
: NodeBuilder<POL,DAT>{move(anchor)}
{ }
friend PortBuilderRoot NodeBuilder<POL>::preparePort();
friend PortBuilderRoot NodeBuilder<POL,DAT>::preparePort();
};
/**

View file

@ -51,19 +51,20 @@ namespace test {
{
seedRand();
build_simple_node();
build_connected_nodes();
generate_turnout_system();
trigger_node_port_invocation();
}
/** @test TODO Build render nodes linked into a connectivity network
* @todo WIP 7/24 🔁 define implement
/** @test Build Node Port for simple function
* and verify observable properties of a Render Node
* @todo 7/24 define implement
*/
void
build_connected_nodes()
build_simple_node()
{
// use some dummy specs and a dummy operation....
StrView nodeID{ont::DUMMY_NODE_ID};
@ -115,13 +116,37 @@ namespace test {
}
/** @test TODO Use existing node connectivity to generate a TurnoutSystem
* @todo WIP 12/24 🔁 define implement
/** @test TODO Build more elaborate Render Nodes linked into a connectivity network
* @todo WIP 1/25 🔁 define implement
*/
void
generate_turnout_system()
build_connected_nodes()
{
UNIMPLEMENTED ("use existing node connectivity to generate a TurnoutSystem");
auto srcOp = [](int param, int* res){ *res = param; };
// A Node with two (source) ports
ProcNode n1{prepareNode("n1")
.preparePort()
.invoke("a(int)", srcOp)
.setParam(5)
.completePort()
.preparePort()
.invoke("b(int)", srcOp)
.setParam(23)
.completePort()
.build()};
auto add1Op = [](int* src, int* res){ *res = 1 + *src; };
ProcNode n2{prepareNode("n2")
.preparePort()
.invoke("+1(int)(int)", add1Op)
.connectLead(n1)
.completePort()
.preparePort()
.invoke("+1(int)(int)", add1Op)
.connectLead(n1)
.completePort()
.build()};
}

View file

@ -88492,8 +88492,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<arrowlink COLOR="#9958aa" DESTINATION="ID_1974639046" ENDARROW="Default" ENDINCLINATION="-21;-40;" ID="Arrow_ID_445633782" STARTARROW="None" STARTINCLINATION="-80;4;"/>
<icon BUILTIN="pencil"/>
</node>
<node CREATED="1718845263947" ID="ID_1747091374" MODIFIED="1734877594780" TEXT="Ziel: den NodeLinkage_test aufbauen">
<arrowlink COLOR="#fe018a" DESTINATION="ID_673154392" ENDARROW="Default" ENDINCLINATION="3;-16;" ID="Arrow_ID_894402730" STARTARROW="None" STARTINCLINATION="-151;11;"/>
<node CREATED="1718845263947" ID="ID_1747091374" MODIFIED="1736198140654" TEXT="Ziel: den NodeLinkage_test aufbauen">
<arrowlink COLOR="#fe018a" DESTINATION="ID_673154392" ENDARROW="Default" ENDINCLINATION="3;-16;" ID="Arrow_ID_894402730" STARTARROW="None" STARTINCLINATION="-472;32;"/>
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1735004660507" ID="ID_1088386150" MODIFIED="1735005563022" TEXT="#1387 Memory handling scheme for render buffers">
@ -89363,8 +89363,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</html></richcontent>
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
</node>
<node CREATED="1713823379083" ID="ID_673154392" LINK="#ID_888185703" MODIFIED="1718845332197" TEXT="die drei Stufen der Verschaltung">
<linktarget COLOR="#fe018a" DESTINATION="ID_673154392" ENDARROW="Default" ENDINCLINATION="3;-16;" ID="Arrow_ID_894402730" SOURCE="ID_1747091374" STARTARROW="None" STARTINCLINATION="-151;11;"/>
<node CREATED="1713823379083" ID="ID_673154392" LINK="#ID_888185703" MODIFIED="1736198140654" TEXT="die drei Stufen der Verschaltung">
<linktarget COLOR="#fe018a" DESTINATION="ID_673154392" ENDARROW="Default" ENDINCLINATION="3;-16;" ID="Arrow_ID_894402730" SOURCE="ID_1747091374" STARTARROW="None" STARTINCLINATION="-472;32;"/>
<icon BUILTIN="idea"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1718843482825" ID="ID_312625997" MODIFIED="1718843612302" TEXT="Nodes konstruieren und verschalten">
<icon BUILTIN="full-1"/>
@ -91395,7 +91395,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="bell"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1720455790739" ID="ID_1106442316" MODIFIED="1720455859799" TEXT="jetzt als n&#xe4;chstes einen Port hinzuf&#xfc;gen">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1720455790739" ID="ID_1106442316" MODIFIED="1736198376087" TEXT="jetzt als n&#xe4;chstes einen Port hinzuf&#xfc;gen">
<linktarget COLOR="#605a85" DESTINATION="ID_1106442316" ENDARROW="Default" ENDINCLINATION="-424;27;" ID="Arrow_ID_984551781" SOURCE="ID_1934059766" STARTARROW="None" STARTINCLINATION="319;-610;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1720455899256" ID="ID_5858705" MODIFIED="1720456997827" TEXT="den PortBuilder um den NodeBuilder wickeln">
@ -99292,8 +99292,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728785502988" HGAP="66" ID="ID_1973895762" MODIFIED="1732848541775" TEXT="Prototyping-1" VSHIFT="6">
<linktarget COLOR="#ed384d" DESTINATION="ID_1973895762" ENDARROW="Default" ENDINCLINATION="-1324;220;" ID="Arrow_ID_95845616" SOURCE="ID_623146928" STARTARROW="None" STARTINCLINATION="481;51;"/>
<linktarget COLOR="#ff6936" DESTINATION="ID_1973895762" ENDARROW="Default" ENDINCLINATION="-884;1900;" ID="Arrow_ID_208548527" SOURCE="ID_694989290" STARTARROW="None" STARTINCLINATION="369;22;"/>
<linktarget COLOR="#ed384d" DESTINATION="ID_1973895762" ENDARROW="Default" ENDINCLINATION="-1324;220;" ID="Arrow_ID_95845616" SOURCE="ID_623146928" STARTARROW="None" STARTINCLINATION="481;51;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1728787061205" ID="ID_1090922930" MODIFIED="1733007833664" TEXT="das wird jetzt der &#xbb;Butter-bei-die-Fische&#xab;-Testfall">
<linktarget COLOR="#623946" DESTINATION="ID_1090922930" ENDARROW="Default" ENDINCLINATION="-1038;-60;" ID="Arrow_ID_1590621703" SOURCE="ID_577737571" STARTARROW="None" STARTINCLINATION="-1805;183;"/>
@ -99337,8 +99337,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
Ich lasse diese Dummy-Operation dennoch bestehen, vor allem, weil auch dazu passende Specs gegeben sind
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1728785768422" ID="ID_1775907930" MODIFIED="1729988421044" TEXT="Connectivity als Ergebnis bekommen">
@ -99511,8 +99510,9 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1730821117360" ID="ID_887734089" MODIFIED="1730821455462" TEXT="komplexere Node-Trees">
<linktarget COLOR="#3e2e67" DESTINATION="ID_887734089" ENDARROW="Default" ENDINCLINATION="-520;56;" ID="Arrow_ID_154039182" SOURCE="ID_1967826855" STARTARROW="None" STARTINCLINATION="91;7;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1730821117360" ID="ID_887734089" MODIFIED="1736199388910" TEXT="komplexere Node-Trees">
<linktarget COLOR="#3e2e67" DESTINATION="ID_887734089" ENDARROW="Default" ENDINCLINATION="-520;56;" ID="Arrow_ID_448844357" SOURCE="ID_1898930555" STARTARROW="None" STARTINCLINATION="152;11;"/>
<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;"/>
@ -99654,11 +99654,74 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1730827998905" ID="ID_1794368282" MODIFIED="1730828011958" TEXT="Adapter-&#x3bb; bereitstellen">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1730827998905" ID="ID_1794368282" MODIFIED="1736215865017" TEXT="Adapter-&#x3bb; automatisch bereitstellen">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1736215840285" ID="ID_1050868829" MODIFIED="1736215860684" TEXT="f&#xfc;r einfache src-Node">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736215848176" ID="ID_67036101" MODIFIED="1736215858211" TEXT="f&#xfc;r Node mit mehreren Ausg&#xe4;ngen">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736215886054" ID="ID_1144604426" MODIFIED="1736215892285" TEXT="komplexe Verbindungen">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736215894301" ID="ID_1690108933" MODIFIED="1736216006059" TEXT="Node mit mehreren Ports">
<linktarget COLOR="#8f9395" DESTINATION="ID_1690108933" ENDARROW="Default" ENDINCLINATION="-673;69;" ID="Arrow_ID_603018030" SOURCE="ID_1250657715" STARTARROW="None" STARTINCLINATION="284;25;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#435e98" CREATED="1736216011781" ID="ID_1584097136" MODIFIED="1736259267553" TEXT="compile-Fehler">
<icon BUILTIN="broken-line"/>
<node COLOR="#b80792" CREATED="1736216019268" ID="ID_1369103994" MODIFIED="1736216043871" TEXT="und ich wollte mir schon diesen Test sparen....">
<icon BUILTIN="smiley-oh"/>
</node>
<node CREATED="1736258397312" ID="ID_400347304" MODIFIED="1736259189109" TEXT="banaler Fehler: 2.Template-Parameter fehlt">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
NodeBuilder&lt;POL,DAT&gt;
</p>
<p>
in der friend-Deklaration, sowie im Argument des intendierten Konstruktors (wenigstens bin ich konsequent...)
</p>
</body>
</html>
</richcontent>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1736259191642" ID="ID_1271370010" MODIFIED="1736259261946" TEXT="....Templates sind t&#xfc;ckisch">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
...denn die einzelnen Klauseln werden nur instantiiert wenn angesprochen. In einem bisher nie aktivierten Codepfad k&#246;nnen ganz banale Fehler lange &#252;berdauern ...
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="clanbomber"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1736259230200" ID="ID_1007576844" MODIFIED="1736259246618">
<richcontent TYPE="NODE"><html>
<head/>
<body>
<p>
der Test mu&#223; zumindest soweit gehen,
</p>
<p>
alle Aspekte der Builder-Syntax auszuleuchten
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1736215909227" ID="ID_1158388367" MODIFIED="1736215933504" TEXT="parallel gebaute Processing-Chains">
<icon BUILTIN="hourglass"/>
</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="#fdfdcf" COLOR="#ff0000" CREATED="1728786069167" ID="ID_1584473368" MODIFIED="1728786088974" TEXT="Aufruf-Pfad durchimplementieren">
@ -101873,40 +101936,66 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719181051848" ID="ID_1552638838" MODIFIED="1719182620319" TEXT="Ziel f&#xfc;r diesen Testfall">
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1719181051848" ID="ID_1552638838" MODIFIED="1736199371358" TEXT="Ziel f&#xfc;r diesen Testfall">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719181203922" ID="ID_1630163115" MODIFIED="1719182613749" TEXT="Nodes bauen">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1719181208787" ID="ID_1934059766" MODIFIED="1730821354469" TEXT="eine Quell-Node mit zwei Ports">
<node COLOR="#338800" CREATED="1719181203922" ID="ID_1630163115" MODIFIED="1736199359289" TEXT="Nodes bauen">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1719181208787" ID="ID_1934059766" MODIFIED="1736199354457" TEXT="einfachst m&#xf6;glicher Quell-Port">
<arrowlink COLOR="#605a85" DESTINATION="ID_1106442316" ENDARROW="Default" ENDINCLINATION="-424;27;" ID="Arrow_ID_984551781" STARTARROW="None" STARTINCLINATION="319;-610;"/>
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1719181289558" ID="ID_1967826855" MODIFIED="1730821455462" TEXT="Node mit einem Lead und zwei Ports">
<arrowlink COLOR="#3e2e67" DESTINATION="ID_887734089" ENDARROW="Default" ENDINCLINATION="-520;56;" ID="Arrow_ID_154039182" STARTARROW="None" STARTINCLINATION="91;7;"/>
<node COLOR="#435e98" CREATED="1719181289558" ID="ID_1967826855" MODIFIED="1736199356722" TEXT="darauf aubauende Node">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1719181653608" ID="ID_1478309261" MODIFIED="1719182255048" TEXT="Node mit zwei Leads und drei Ports">
<icon BUILTIN="full-3"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719182150605" ID="ID_1115772240" MODIFIED="1719182613748" TEXT="pr&#xfc;fen...">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1719182162476" ID="ID_216827263" MODIFIED="1719182257696" TEXT="hinter jedem Port steckt ein markierter Turnout">
<node COLOR="#338800" CREATED="1719182150605" ID="ID_1115772240" MODIFIED="1736199367614" TEXT="pr&#xfc;fen...">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1719182162476" ID="ID_216827263" MODIFIED="1736199363116" TEXT="Zahl der Leads und Ports">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1719182222333" ID="ID_1783268362" MODIFIED="1719182302909" TEXT="Struktur der Manifold">
<node COLOR="#435e98" CREATED="1719182222333" ID="ID_1783268362" MODIFIED="1736199365580" TEXT="Verhalten der ID/Spec">
<icon BUILTIN="full-2"/>
<node CREATED="1719182335669" ID="ID_1014404062" MODIFIED="1719182463944" TEXT="jeder Turnout hat einen Quell-Port"/>
<node CREATED="1719182351192" ID="ID_1248520841" MODIFIED="1719182372167" TEXT="diese ensprechen den Ports des Lead"/>
</node>
<node CREATED="1719182383030" ID="ID_1828048731" MODIFIED="1719182633337" TEXT="Struktur der Manifold">
</node>
</node>
</node>
<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">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719181203922" ID="ID_714901077" MODIFIED="1719182613749" TEXT="Nodes bauen">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1719181208787" ID="ID_1250657715" MODIFIED="1736216006059" 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="284;25;"/>
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1719181289558" ID="ID_1898930555" MODIFIED="1736199388910" TEXT="Node mit einem Lead und zwei Ports">
<arrowlink COLOR="#3e2e67" DESTINATION="ID_887734089" ENDARROW="Default" ENDINCLINATION="-520;56;" ID="Arrow_ID_448844357" STARTARROW="None" STARTINCLINATION="152;11;"/>
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1719181653608" ID="ID_1586899643" MODIFIED="1719182255048" TEXT="Node mit zwei Leads und drei Ports">
<icon BUILTIN="full-3"/>
<node CREATED="1719182426384" ID="ID_1676547159" MODIFIED="1719182472679" TEXT="jeder der drei Turnouts hat Quell-Port der auf einen der Leads f&#xfc;hrt"/>
<node CREATED="1719184331652" ID="ID_547519197" MODIFIED="1719184361531" TEXT="die anderen sind jeweils belegt wie im Setup konfiguriert"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719182150605" ID="ID_126580500" MODIFIED="1719182613748" TEXT="pr&#xfc;fen...">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1719182162476" ID="ID_355546806" MODIFIED="1719182257696" TEXT="hinter jedem Port steckt ein markierter Turnout">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1719182222333" ID="ID_1242784088" MODIFIED="1719182302909" TEXT="Struktur der Manifold">
<icon BUILTIN="full-2"/>
<node CREATED="1719182335669" ID="ID_1034553119" MODIFIED="1719182463944" TEXT="jeder Turnout hat einen Quell-Port"/>
<node CREATED="1719182351192" ID="ID_1019047230" MODIFIED="1719182372167" TEXT="diese ensprechen den Ports des Lead"/>
</node>
<node CREATED="1719182383030" ID="ID_1714593159" MODIFIED="1719182633337" TEXT="Struktur der Manifold">
<icon BUILTIN="full-3"/>
<node CREATED="1719182426384" ID="ID_161510177" MODIFIED="1719182472679" TEXT="jeder der drei Turnouts hat Quell-Port der auf einen der Leads f&#xfc;hrt"/>
<node CREATED="1719184331652" ID="ID_1422155228" MODIFIED="1719184361531" TEXT="die anderen sind jeweils belegt wie im Setup konfiguriert"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1719185907166" ID="ID_103991417" MODIFIED="1719964904585" TEXT="Implementierung treiben">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1719185907166" ID="ID_103991417" MODIFIED="1736198340899" TEXT="Implementierung treiben">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1719185917965" ID="ID_1211128567" MODIFIED="1719185925767" TEXT="zu kl&#xe4;ren">
<icon BUILTIN="yes"/>
@ -101948,6 +102037,55 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node CREATED="1730424602715" ID="ID_1250793796" MODIFIED="1730424617979" TEXT="reproduzierbar auch &#xfc;ber mehrere Builder-L&#xe4;ufe hinweg"/>
</node>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719163853932" ID="ID_1687553364" MODIFIED="1736198540675" TEXT="Konzept des Turnout-Systems">
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719163869980" ID="ID_1720848449" MODIFIED="1736198572912" TEXT="Struktur">
<icon BUILTIN="help"/>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1736198558585" ID="ID_152257218" MODIFIED="1736198572914" TEXT="Bedeutung">
<icon BUILTIN="help"/>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719163874339" ID="ID_1903655361" MODIFIED="1719163886249" TEXT="Interface? Implementierung?">
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1719163887600" ID="ID_337914836" MODIFIED="1719163900862" TEXT="urspr&#xfc;nglich sollte das mal von StateClosure erben">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1719163902717" ID="ID_1815065175" MODIFIED="1719163924443" TEXT="erscheit mir aber im Moment zweifelhaft (nicht klar was StateClosure noch soll....)">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1719176564725" ID="ID_1676094171" MODIFIED="1719176859858" TEXT="man k&#xf6;nnte wohl den gleichen Effekt mit einer expliziteren Dependency-Injection erzielen">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
...weiterhin bleibt es dabei, da&#223; der Zugang zum Buffer-Management &#252;ber das Turnout-System (fr&#252;her StateAdapter) l&#228;uft; aber daf&#252;r ist kein klassisches OO-Interface notwendig, sofern das Buffer-Handling seinerseits auf einem Interface aufbaut. Die Aufgabe, an der sich das entscheidet ist, wie der konkrete Turnout eine konkrete FeedManifold bauen kann (und ob er das &#252;berhaupt tut)
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#feded1" COLOR="#5b0f23" CREATED="1736198597517" ID="ID_1213635139" MODIFIED="1736199010042" TEXT="das Konzept mit einer StateClosure impliziert ein globales Organisationsschema">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
...das war mir lange Zeit nicht klar; tats&#228;chlich ist das verborgen in der Richtung der Abstraktion, die auf einen top-down-Zugang hindeutet &#8212; ein Solcher ist aber nur zielf&#252;hrend, wenn man <i>im Prinzip</i>&#160;&#252;ber ein Gesamtbild der Dom&#228;ne verf&#252;gt. Das ist allerdings die ganz normale, professionelle Dreistigkeit des Entwicklers, getreu dem Motto &#8222;let's do the first step, and then we'll figure out the rest&#8220;.
</p>
<p>
</p>
<p>
Im R&#252;ckblick ist das, was mir dann passiert ist, also folgerichtig, und ich habe mich richtig verhalten, indem ich den Ansatz &#8222;h&#228;ngen lie&#223;&#8220;....
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1736198641765" ID="ID_236390246" MODIFIED="1736198686213" TEXT="das wird hinf&#xe4;llig &#x2014; und ohne sowas zerlegt man besser in einzel-Services">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719186031309" ID="ID_1908240557" MODIFIED="1719186091788" TEXT="kann man die Identit&#xe4;t eines Turnout feststellen?">
<icon BUILTIN="help"/>
<node CREATED="1730424622368" ID="ID_1606715255" MODIFIED="1730424665485" TEXT="ist nicht notwendig an die Node-ID gebunden, wohl aber an die Vorl&#xe4;ufer-Turnouts"/>
@ -102083,53 +102221,58 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<arrowlink COLOR="#ff002c" DESTINATION="ID_977612187" ENDARROW="Default" ENDINCLINATION="195;18;" ID="Arrow_ID_1597591970" STARTARROW="None" STARTINCLINATION="-8;-35;"/>
<icon BUILTIN="full-1"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#5e0646" CREATED="1719964579700" ID="ID_1905345149" MODIFIED="1719964689394" STYLE="bubble" TEXT="schon mal ein Turnout-System skizzieren">
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1719964579700" ID="ID_1905345149" MODIFIED="1736199257619" STYLE="bubble" TEXT="schon mal ein Turnout-System skizzieren">
<edge COLOR="#fe6f46"/>
<icon BUILTIN="full-2"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#5e0646" CREATED="1719964591375" ID="ID_638682394" MODIFIED="1719964689395" STYLE="bubble" TEXT="eine Dummy-Invocation machen">
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1719964591375" ID="ID_638682394" MODIFIED="1736199285036" STYLE="bubble" TEXT="eine Dummy-Invocation machen">
<edge COLOR="#fe6f46"/>
<icon BUILTIN="full-3"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#5e0646" CREATED="1719964597362" ID="ID_704199650" MODIFIED="1719964689395" STYLE="bubble" TEXT="Code extrahieren">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#5e0646" CREATED="1719964597362" ID="ID_704199650" MODIFIED="1736199303398" STYLE="bubble" TEXT="Code ausbauen">
<edge COLOR="#fe6f46"/>
<icon BUILTIN="full-4"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1718843534139" ID="ID_1144935511" MODIFIED="1718843607043" TEXT="Turnout-System aufbauen">
<icon BUILTIN="full-2"/>
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719163853932" ID="ID_1687553364" MODIFIED="1719163866987" TEXT="Konzept des Turnout-Systems">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719163869980" ID="ID_1720848449" MODIFIED="1719163873337" TEXT="Struktur">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719163874339" ID="ID_1903655361" MODIFIED="1719163886249" TEXT="Interface? Implementierung?">
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1719163887600" ID="ID_337914836" MODIFIED="1719163900862" TEXT="urspr&#xfc;nglich sollte das mal von StateClosure erben">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1719163902717" ID="ID_1815065175" MODIFIED="1719163924443" TEXT="erscheit mir aber im Moment zweifelhaft (nicht klar was StateClosure noch soll....)">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1719176564725" ID="ID_1676094171" MODIFIED="1719176859858" TEXT="man k&#xf6;nnte wohl den gleichen Effekt mit einer expliziteren Dependency-Injection erzielen">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
...weiterhin bleibt es dabei, da&#223; der Zugang zum Buffer-Management &#252;ber das Turnout-System (fr&#252;her StateAdapter) l&#228;uft; aber daf&#252;r ist kein klassisches OO-Interface notwendig, sofern das Buffer-Handling seinerseits auf einem Interface aufbaut. Die Aufgabe, an der sich das entscheidet ist, wie der konkrete Turnout eine konkrete FeedManifold bauen kann (und ob er das &#252;berhaupt tut)
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1718843561830" ID="ID_1092570310" MODIFIED="1718843607042" TEXT="Invocations ausl&#xf6;sen">
<icon BUILTIN="full-3"/>
<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">
<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"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719182150605" ID="ID_1205483344" MODIFIED="1719182613748" TEXT="pr&#xfc;fen...">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736199173072" ID="ID_503056617" MODIFIED="1736199214689" TEXT="Berechnungen laufen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736199179773" ID="ID_69132680" MODIFIED="1736199214689" TEXT="Ergebnisse sind verifizierbar">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736199205282" ID="ID_1304975203" MODIFIED="1736199214689" TEXT="Parameter sind eingegangen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736199188090" ID="ID_202412964" MODIFIED="1736199214689" TEXT="formale Reihenfolge der Berechnungen ist korrekt">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1713823407007" ID="ID_392149724" MODIFIED="1713823477637" STYLE="bubble" TEXT="&#x25b6; f&#xf6;rdert den Kern des Aufbaus &#x25c0;">
@ -102167,7 +102310,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</body>
</html></richcontent>
<arrowlink COLOR="#ad4f61" DESTINATION="ID_1199569608" ENDARROW="Default" ENDINCLINATION="16;78;" ID="Arrow_ID_1294596979" STARTARROW="None" STARTINCLINATION="229;11;"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1719964416438" ID="ID_860129802" MODIFIED="1729962194929" TEXT="Form und Struktur des Weaving-Patterns" VSHIFT="102">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1719964416438" ID="ID_860129802" MODIFIED="1736199328902" TEXT="Form und Struktur des Weaving-Patterns" VSHIFT="109">
<arrowlink COLOR="#ff6936" DESTINATION="ID_495934512" ENDARROW="Default" ENDINCLINATION="-884;1900;" ID="Arrow_ID_1128127655" STARTARROW="None" STARTINCLINATION="709;49;"/>
<icon BUILTIN="xmag"/>
</node>