Invocation: ++ Milestone ++ invoke complex render graph

Based on the building blocks developed thus far,
it was possible to assemble a typical media processing chain
 * two source nodes
 * one of these passes data through a filter
 * a mixer node on top to combine both chains
 * time-based automation for processing parameters
As actual computation, hash-chaining on blocks of
reproducible random data was used, allowing to verify
for every data word that expected computations were
carried out, in the expected order.
This commit is contained in:
Fischlurch 2025-02-19 23:27:52 +01:00
parent 93812d5a6d
commit efcb456e25
5 changed files with 354 additions and 139 deletions

View file

@ -14,15 +14,15 @@ TEST "Proc Node test setup" NodeDevel_test <<END
END
PLANNED "Proc Node data feeds" NodeFeed_test <<END
TEST "Proc Node data feeds" NodeFeed_test <<END
END
PLANNED "Proc Node connectivity" NodeLink_test <<END
TEST "Proc Node connectivity" NodeLink_test <<END
END
Test "Proc Node metadata key" NodeMeta_test <<END
TEST "Proc Node metadata key" NodeMeta_test <<END
END

View file

@ -32,7 +32,6 @@
//#include "lib/util.hpp"
//using std::string;
using lib::Several;
using lib::makeSeveral;
using lib::time::Time;
@ -50,6 +49,7 @@ namespace test {
/************************************************************************//**
* @test demonstrate how to feed data into, through and out of render nodes.
* @todo 2/2025 unfinished -- add cases to cover media data feeds
*/
class NodeFeed_test : public Test
{
@ -59,7 +59,6 @@ namespace test {
seedRand();
feedParam();
feedParamNode();
UNIMPLEMENTED ("render node pulling source data from vault");
}

View file

@ -25,7 +25,6 @@
#include "lib/time/timequant.hpp"
#include "lib/time/timecode.hpp"
#include "lib/util.hpp"
#include "lib/test/diagnostic-output.hpp"/////////////////TODO
#include <array>
@ -43,15 +42,25 @@ namespace test {
using lib::time::FrameNr;
using lib::time::FrameCnt;
namespace {
ont::Flavr SRC_A = 10; ///< »chain-A« arbitrary source frame marker
ont::Flavr SRC_B = 20; ///< similar for »chain-B«
Symbol SECONDS_GRID = "grid_sec"; ///< 1-seconds grid for translation Time -> Frame-#
const uint NUM_INVOCATIONS = 100;
}
/***************************************************************//**
* @test demonstrate and document how [render nodes](\ref proc-node.hpp)
* are connected into a processing network, allowing to _invoke_
* a \ref Port on a node to pull-generate a render result.
* - the foundation layer is formed by the nodes as linked into a network
* - starting from any Port, a TurnoutSystem can be established
* - which in turn allows _turn out_ a render result from this port.
* - Nodes can be built and ID metadata can be inspected
* - several Nodes can be linked into a render graph
* - connectivity can be verified to match definition
* - TestFrame data can be computed in a complex processing network
* - parameters can be derived from time and fed into the nodes.
*/
class NodeLink_test : public Test
{
@ -321,8 +330,19 @@ namespace test {
/** @test TODO Invoke some render nodes as linked together
* @todo WIP 2/25 🔁 define implement
/** @test Invoke some render nodes as linked together.
* - use exactly the same topology as in the preceding test
* - but this time use TestFrame (random data) and configure
* hash-chaining operations provided by »Test Random«
* - setup various automation functions, based on the frame-#
* - use a pre-computation step to _quantise_ time into frame-#
* - install this pre-computation as »Param Agent Node«
* - configure individual parameters to consume precomputed frame-#
* - use _partial closure_ to supply the source-»flavour« parameter
* - also rebuild the expected computations by direct invocation
* - sample various test runs with randomly chosen time and port-#
* - verify computed data checksums match with expected computation.
* @todo 2/25 define implement
*/
void
trigger_node_port_invocation()
@ -331,24 +351,22 @@ namespace test {
auto testMan = testRand().setupManipulator();
auto testMix = testRand().setupCombinator();
ont::Flavr SRC_A = 10;
ont::Flavr SRC_B = 20;
// Prepare for Time-Quantisation --> Frame-# or Offset parameter
Symbol SECONDS_GRID = "grid_sec";
steam::asset::meta::TimeGrid::build (SECONDS_GRID, 1);
auto quantSecs = [&](Time time){ return FrameNr::quant (time, SECONDS_GRID); };
// Prepare a precomputed parameter for the complete tree
auto selectFrameNo = [&](TurnoutSystem& tuSys){ return FrameNr::quant (tuSys.getNomTime(), SECONDS_GRID); };
auto selectFrameNo = [&](TurnoutSystem& tuSys){ return quantSecs(tuSys.getNomTime()); };
auto paramSpec = buildParamSpec()
.addSlot (selectFrameNo);
auto accFrameNo = paramSpec.makeAccessor<0>();
// Prepare mapping- and automation-functions
auto stepFilter = [] (FrameCnt id)-> ont::Param { return util::limited (10, -10 + id, 20); };
auto stepMixer = [] (FrameCnt id)-> double { return util::limited (0, + id, 50) / 50.0; };
auto stepFilter = [] (FrameCnt id)-> ont::Param { return util::limited (10, -10 + id, 50); };
auto stepMixer = [] (FrameCnt id)-> ont::Factr { return util::limited (0, + id, 50) / 50.0; };
// note: binds the accessor for the precomputed FrameNo-parameter
auto autoFilter = [=](TurnoutSystem& tuSys){ return stepFilter (tuSys.get (accFrameNo)); };
@ -445,20 +463,51 @@ namespace test {
.build()};
// Effectively, the following computation is expected to happen...
auto verify = [&](Time nomTime, uint port)
{
ont::FraNo fraNo = quantSecs(nomTime);
ont::Flavr fla_A = SRC_A + util::min (port, 1u);
ont::Flavr fla_B = SRC_B + util::min (port, 2u);
ont::Param param = stepFilter(fraNo);
ont::Factr mix = stepMixer (fraNo);
TestFrame f1{uint(fraNo),fla_A};
TestFrame f2{uint(fraNo),fla_B};
ont::manipulateFrame (&f1, &f1, param);
ont::combineFrames (&f1, &f1, &f2, mix);
CHECK (not f1.isPristine());
CHECK ( f2.isPristine());
return f1.getChecksum();
};
BufferProvider& provider = DiagnosticBufferProvider::build();
const BuffDescr buffDescr = provider.getDescriptorFor(sizeof(TestFrame));
const BuffDescr buffDescr = provider.getDescriptor<TestFrame>();
auto invoke = [&](Time nomTime, uint port)
{ // Sequence to invoke a Node...
BuffHandle buff = provider.lockBuffer(buffDescr);
CHECK (not buff.accessAs<TestFrame>().isValid());
TestFrame& result = buff.accessAs<TestFrame>();
CHECK ( result.isPristine());
buff = parNode.pull (port, buff, nomTime, ProcessKey{});
HashVal checksum = buff.accessAs<TestFrame>().getChecksum();
CHECK ( result.isValid());
CHECK (not result.isPristine());
HashVal checksum = result.getChecksum();
buff.release();
return checksum;
};
SHOW_EXPR(invoke(Time::ZERO, 1));
// Computations should be pure (not depending on order)
// Thus sample various random times and ports
for (uint i=0; i < NUM_INVOCATIONS; ++i)
{
uint port = rani(3);
Time nomTime{rani(60'000),0}; // drive test with a random »nominal Time« <60s with ms granularity
// Invoke -- and compare checksum with direct computation
CHECK (invoke (nomTime,port) == verify (nomTime,port));
}
}
};

View file

@ -6174,7 +6174,7 @@ This is the core service provided by the player subsystem. The purpose is to cre
:any details of this processing remain opaque for the clients; even the player subsystem just accesses the EngineFaçade
</pre>
</div>
<div title="PlaybackVerticalSlice" creator="Ichthyostega" modifier="Ichthyostega" created="202303272236" modified="202412221832" tags="overview impl discuss draft" changecount="45">
<div title="PlaybackVerticalSlice" creator="Ichthyostega" modifier="Ichthyostega" created="202303272236" modified="202502192215" tags="overview impl discuss draft" changecount="48">
<pre>//Integration effort to promote the development of rendering, playback and video display in the GUI//
This IntegrationSlice was started in {{red{2023}}} as [[Ticket #1221|https://issues.lumiera.org/ticket/1221]] to coordinate the completion and integration of various implementation facilities, planned, drafted and built during the last years; this effort marks the return of development focus to the lower layers (after years of focussed UI development) and will implement the asynchronous and time-bound rendering coordinated by the [[Scheduler]] in the [[Vault|Vault-Layer]]
@ -6212,11 +6212,12 @@ __December.23__: building the Scheduler required time and dedication, including
__April.24__: after completing an extended round of performance tests for the new Scheduler, development focus is shifted now shifted upwards to the [[Render Node Network|ProcNode]], where Engine activity is carried out. This part was addressed at the very start of the project, and later again -- yet could never be completed, due to a lack of clear reference points and technical requirements. Hope to achieve a breakthrough rests on this integration effort now.
__June.24__: assessment of the existing code indicated some parts not well suited to the expected usage. Notably the {{{AllocationCluster}}}, which is the custom allocator used by the render nodes network, was reworked and simplified. Moreover, a new custom container was developed, to serve as //link to connect the nodes.// Beyond that, in-depth review validated the existing design for the render nodes, while also indicating a clear need to rearrange and re-orient the internal structure within an node invocation to be better aligned with the structure of the Application developed thus far...
__December.24__: after an extended break of several months (due to family-related obligations), a re-oriented concept for the Render Node invocation was developed in a prototyping setup. Assessment of results and further analysis leads to the conclusion that a more flexible invocation scheme -- and especially structured invocation parameters -- must be retro-fitted into the code developed thus far. Features of this kind can not be added later by decoration and extension -- rather, the data structures used directly within the invocation required considerable elaboration. This could be accomplished in the end, through a bold move to abandon array-style storage and switch over to strictly typed data tuples and a functor-based binding to the implementation library.
__February.25__: built extended verification mechanisms, including some Node metadata handling; after some further retro-fitting and modernisation of function-support libraries (partial closure), a **complex Render Node graph could be built and invoked**, using {{{TestData}}} frames with reproducible hash-chaining computations. This is a milestone — the re-oriented Render Node structure feels much more adequate, and connection to [[Scheduler]] and [[Job-Planning|JobPlanningPipeline]] seems to be within reach now
* ✔ establish a test setup for developing render node functionality
* ✔ build and connect some dummy render nodes directly in a test setup
* 🗘 invoke render nodes stand-alone, without framework
* invoke render nodes stand-alone, without framework
* ⌛ introduce a //placeholder link// to connect JobTicket to the actual invocation (without actual [[Fixture]])
* rework and complete the existing node invocation code
* rework and complete the existing node invocation code
!Decisions
;Scheduler

View file

@ -90069,7 +90069,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1718926023053" ID="ID_1064805768" MODIFIED="1718926095493" TEXT="Verbindung mit der Node-Struktur neu ordnen">
<linktarget COLOR="#80418c" DESTINATION="ID_1064805768" ENDARROW="Default" ENDINCLINATION="347;215;" ID="Arrow_ID_1648312561" SOURCE="ID_1898452649" STARTARROW="None" STARTINCLINATION="148;-17;"/>
<linktarget COLOR="#41568c" DESTINATION="ID_1064805768" ENDARROW="Default" ENDINCLINATION="347;215;" ID="Arrow_ID_1648312561" SOURCE="ID_1898452649" STARTARROW="None" STARTINCLINATION="148;-17;"/>
<icon BUILTIN="yes"/>
<node COLOR="#5b280f" CREATED="1718926109744" ID="ID_80068724" MODIFIED="1719191543432" TEXT="was mich st&#xf6;rt">
<linktarget COLOR="#b80202" DESTINATION="ID_80068724" ENDARROW="Default" ENDINCLINATION="16;334;" ID="Arrow_ID_261689280" SOURCE="ID_943512919" STARTARROW="Default" STARTINCLINATION="0;-193;"/>
@ -91733,9 +91733,13 @@ 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="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;"/>
<node COLOR="#338800" CREATED="1718845263947" ID="ID_1747091374" MODIFIED="1740002476660" TEXT="Ziel: den NodeLinkage_test aufbauen">
<arrowlink COLOR="#01c3fe" DESTINATION="ID_673154392" ENDARROW="Default" ENDINCLINATION="3;-16;" ID="Arrow_ID_894402730" STARTARROW="None" STARTINCLINATION="-472;32;"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#174956" COLOR="#8dfd49" CREATED="1740002453339" HGAP="31" ID="ID_1841673785" MODIFIED="1740002464852" STYLE="bubble" TEXT="Erfolg" VSHIFT="12">
<edge COLOR="#61fe5b" STYLE="bezier" WIDTH="thin"/>
<font NAME="SansSerif" SIZE="17"/>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1735004660507" ID="ID_1088386150" MODIFIED="1735005563022" TEXT="#1387 Memory handling scheme for render buffers">
<arrowlink COLOR="#ff2921" DESTINATION="ID_1747509213" ENDARROW="Default" ENDINCLINATION="-965;-57;" ID="Arrow_ID_1750574936" STARTARROW="None" STARTINCLINATION="1192;64;"/>
@ -91748,18 +91752,18 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="hourglass"/>
</node>
</node>
<node CREATED="1713823918124" ID="ID_1749289662" MODIFIED="1713823922851" TEXT="Testbarkeit">
<node COLOR="#435e98" CREATED="1713823918124" ID="ID_1749289662" MODIFIED="1740002559894" TEXT="Testbarkeit">
<linktarget COLOR="#80657f" DESTINATION="ID_1749289662" ENDARROW="Default" ENDINCLINATION="18;-68;" ID="Arrow_ID_1781511578" SOURCE="ID_1428576691" STARTARROW="None" STARTINCLINATION="-104;16;"/>
<node CREATED="1713823928074" ID="ID_1359856614" MODIFIED="1713823939046" TEXT="Node mu&#xdf; direkt konstruierbar sein"/>
<node CREATED="1713823944920" ID="ID_1929417005" MODIFIED="1713823954451" TEXT="Node mu&#xdf; Verschaltungs-API bieten"/>
<node CREATED="1713823999457" ID="ID_1445622002" MODIFIED="1713824007500" TEXT="Steuerbarkeit per TurnoutSystem"/>
<node CREATED="1713824070968" ID="ID_1427325952" MODIFIED="1713824271145" TEXT="Struktur TurnoutSystem ableiten"/>
<node CREATED="1728764677697" ID="ID_1857199136" MODIFIED="1728764933507" TEXT="Modell-Struktur-Verifizierbarkeit">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node COLOR="#435e98" CREATED="1713823928074" ID="ID_1359856614" MODIFIED="1740002495238" TEXT="Node mu&#xdf; direkt konstruierbar sein"/>
<node COLOR="#435e98" CREATED="1713823944920" ID="ID_1929417005" MODIFIED="1740002517083" TEXT="Builder mu&#xdf; Verschaltungs-API bieten"/>
<node COLOR="#435e98" CREATED="1713824070968" ID="ID_1427325952" MODIFIED="1740002549823" TEXT="Struktur TurnoutSystem ableiten"/>
<node COLOR="#435e98" CREATED="1728764677697" ID="ID_1857199136" MODIFIED="1740002552107" TEXT="Modell-Struktur-Verifizierbarkeit">
<arrowlink COLOR="#873d58" DESTINATION="ID_1876650367" ENDARROW="Default" ENDINCLINATION="-604;-28;" ID="Arrow_ID_1732704985" STARTARROW="None" STARTINCLINATION="325;29;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719186374543" ID="ID_1706482104" MODIFIED="1719277437612" TEXT="Test-Ontologie aufbauen">
<arrowlink COLOR="#ff2400" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="-136;-44;" ID="Arrow_ID_1657525718" STARTARROW="None" STARTINCLINATION="101;9;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1719186374543" ID="ID_1706482104" MODIFIED="1740002493097" TEXT="Test-Ontologie aufbauen">
<arrowlink COLOR="#ff2400" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="-136;-44;" ID="Arrow_ID_1657525718" STARTARROW="None" STARTINCLINATION="141;14;"/>
<icon BUILTIN="pencil"/>
</node>
</node>
</node>
@ -92407,9 +92411,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1739914220664" ID="ID_368969698" MODIFIED="1739914369459" TEXT="wichtig wenn Parameter verschiedenen Zwecken dienen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
Alle Parameter einer processing-function sind in ein einziges Tupel zusammengefa&#223;t, aber typischerweise sind einige <i>technisch, </i>w&#228;hrend andere die <i>gestalterischen Steuerm&#246;glichkeiten </i>der Operation repr&#228;sentieren. Beide Aspekte m&#252;ssen auf dem gleichen NodeBuilder konfiguriert werden, aber aus verschiedenen Quellen (und vermutlich auch in verschiedenen Schritten)
@ -92420,9 +92422,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node COLOR="#435e98" CREATED="1739914375831" ID="ID_1345180065" MODIFIED="1739914395658">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
implementiert auf Basis der <i>partial-function-closure</i>
@ -92472,11 +92472,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1713821606607" ID="ID_492497884" MODIFIED="1733527499249" TEXT="NodeDevel_test">
<icon BUILTIN="pencil"/>
<node CREATED="1713823362710" ID="ID_66967253" MODIFIED="1719277373397" TEXT="Hilfsmittel zur Entwicklung und zum Aufbau">
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1719277267208" HGAP="29" ID="ID_594112005" LINK="https://issues.lumiera.org/ticket/1372" MODIFIED="1722274638084" TEXT="#1372 establish a &#xbb;Test Domain Ontology&#xab;" VSHIFT="7">
<node COLOR="#435e98" CREATED="1713823362710" ID="ID_66967253" MODIFIED="1740002270991" TEXT="Hilfsmittel zur Entwicklung und zum Aufbau">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1719277267208" HGAP="29" ID="ID_594112005" LINK="https://issues.lumiera.org/ticket/1372" MODIFIED="1740002493097" TEXT="#1372 establish a &#xbb;Test Domain Ontology&#xab;" VSHIFT="7">
<linktarget COLOR="#df3950" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="666;-662;" ID="Arrow_ID_801625266" SOURCE="ID_973384222" STARTARROW="None" STARTINCLINATION="-1433;133;"/>
<linktarget COLOR="#df3950" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="524;-512;" ID="Arrow_ID_839086124" SOURCE="ID_605165611" STARTARROW="Default" STARTINCLINATION="-1300;117;"/>
<linktarget COLOR="#ff2400" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="-136;-44;" ID="Arrow_ID_1657525718" SOURCE="ID_1706482104" STARTARROW="None" STARTINCLINATION="101;9;"/>
<linktarget COLOR="#ff2400" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="-136;-44;" ID="Arrow_ID_1657525718" SOURCE="ID_1706482104" STARTARROW="None" STARTINCLINATION="141;14;"/>
<linktarget COLOR="#fde0ca" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="-1678;88;" ID="Arrow_ID_594112055" SOURCE="ID_854334540" STARTARROW="None" STARTINCLINATION="-1536;97;"/>
<icon BUILTIN="flag-pink"/>
<node CREATED="1719277376922" ID="ID_420782384" MODIFIED="1719787483524" TEXT="das ist zugleich ein Pr&#xfc;fstein f&#xfc;r das angestrebte &#xbb;generische Design&#xab;">
@ -92498,21 +92500,21 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719277401015" ID="ID_1540154009" MODIFIED="1719625180422" TEXT="mu&#xdf; alle Operationen bereitstellen, die f&#xfc;r abstrakte Tests notwendig sind">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719625209413" ID="ID_1847666799" MODIFIED="1719625223372" TEXT="per NodeLinkage_test herausfinden...">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1719625209413" ID="ID_1847666799" MODIFIED="1740002250557" TEXT="per NodeLinkage_test herausfinden...">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728764748678" ID="ID_1876650367" MODIFIED="1739221137759" TEXT="geeignete Ankerpunkte f&#xfc;r Assertions etablieren">
<arrowlink COLOR="#0050ef" DESTINATION="ID_475636936" ENDARROW="Default" ENDINCLINATION="-1187;-101;" ID="Arrow_ID_426827896" STARTARROW="None" STARTINCLINATION="859;48;"/>
<linktarget COLOR="#873d58" DESTINATION="ID_1876650367" ENDARROW="Default" ENDINCLINATION="-604;-28;" ID="Arrow_ID_1732704985" SOURCE="ID_1857199136" STARTARROW="None" STARTINCLINATION="325;29;"/>
<icon BUILTIN="pencil"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1730830136938" ID="ID_1277388080" MODIFIED="1730830237210" TEXT="etwas komplexere Testfunktionen aufbauen">
<node COLOR="#338800" CREATED="1730830136938" ID="ID_1277388080" MODIFIED="1740002247199" TEXT="etwas komplexere Testfunktionen aufbauen">
<arrowlink COLOR="#3e56b6" DESTINATION="ID_97803520" ENDARROW="Default" ENDINCLINATION="-355;-656;" ID="Arrow_ID_552101308" STARTARROW="None" STARTINCLINATION="874;55;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739116464928" ID="ID_770787154" MODIFIED="1739222708161" TEXT="Test-Nodes f&#xfc;r typische Verarbeitungsschrite">
<node COLOR="#338800" CREATED="1739116464928" ID="ID_770787154" MODIFIED="1740002240686" TEXT="Test-Nodes f&#xfc;r typische Verarbeitungsschrite">
<arrowlink COLOR="#1b71aa" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="168;0;" ID="Arrow_ID_265273895" STARTARROW="None" STARTINCLINATION="-640;0;"/>
<arrowlink COLOR="#1b71aa" DESTINATION="ID_551457644" ENDARROW="Default" ENDINCLINATION="799;-53;" ID="Arrow_ID_1372658878" STARTARROW="None" STARTINCLINATION="374;22;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1719625243183" ID="ID_1479244509" MODIFIED="1719625248360" TEXT="&#xfc;ber Weiterungen nachdenken">
@ -92520,19 +92522,19 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739116383263" ID="ID_596205632" MODIFIED="1739154733978" TEXT="Test-Node-Setups dokumentieren">
<node COLOR="#338800" CREATED="1739116383263" ID="ID_596205632" MODIFIED="1740002254333" TEXT="Test-Node-Setups dokumentieren">
<linktarget COLOR="#1b71aa" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="168;0;" ID="Arrow_ID_265273895" SOURCE="ID_770787154" STARTARROW="None" STARTINCLINATION="-640;0;"/>
<linktarget COLOR="#2c80c0" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="1567;83;" ID="Arrow_ID_1998396288" SOURCE="ID_495521485" STARTARROW="None" STARTINCLINATION="-765;-533;"/>
<linktarget COLOR="#2c80c0" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="1749;97;" ID="Arrow_ID_723151145" SOURCE="ID_656518843" STARTARROW="None" STARTINCLINATION="-985;-614;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1730830270041" ID="ID_1591571416" MODIFIED="1730830413355" TEXT="parallel zum Prototyping mitf&#xfc;hren">
<icon BUILTIN="yes"/>
<icon BUILTIN="bell"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1730830293781" ID="ID_1464679892" MODIFIED="1739222790365" TEXT="Strukturen der TestDomainOntology anlegen">
<node COLOR="#338800" CREATED="1730830293781" ID="ID_1464679892" MODIFIED="1740002335818" TEXT="Strukturen der TestDomainOntology anlegen">
<arrowlink COLOR="#1c7ff0" DESTINATION="ID_124715076" ENDARROW="Default" ENDINCLINATION="-1234;-110;" ID="Arrow_ID_1508179375" STARTARROW="None" STARTINCLINATION="1225;76;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1732762364610" ID="ID_1911911586" MODIFIED="1732762650541" TEXT="schrittweise entwickeln was die &#xbb;Test-Ontology&#xab; eigentlich sein soll">
<richcontent TYPE="NOTE"><html>
<head/>
@ -92578,6 +92580,9 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node CREATED="1732849768862" HGAP="36" ID="ID_611920770" MODIFIED="1732849785352" TEXT="man erzeugt jeweils einen Spec-Record" VSHIFT="-9"/>
</node>
<node COLOR="#338800" CREATED="1740002299905" ID="ID_883546580" MODIFIED="1740002320983" TEXT="bietet nun Emulation f&#xfc;r typische Medien-berechnunsmuster">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1730850551731" HGAP="22" ID="ID_569300878" MODIFIED="1732762660137" TEXT="processing functions" VSHIFT="-16">
<node COLOR="#338800" CREATED="1730862521858" ID="ID_1019281023" MODIFIED="1730862530365" TEXT="processing_generateFrame">
@ -92611,7 +92616,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1733527644101" ID="ID_486838965" MODIFIED="1733529538606" TEXT="NodeFeed_test">
<icon BUILTIN="hourglass"/>
<node CREATED="1733527649620" ID="ID_53133526" MODIFIED="1733527744507" TEXT="Node Data-Feed">
<node CREATED="1733531449614" ID="ID_1987832971" MODIFIED="1733532184689" TEXT="Param &#x27f6; Node">
<node COLOR="#435e98" CREATED="1733531449614" ID="ID_1987832971" MODIFIED="1740002361441" TEXT="Param &#x27f6; Node">
<linktarget COLOR="#0d7dd1" DESTINATION="ID_1987832971" ENDARROW="Default" ENDINCLINATION="1285;255;" ID="Arrow_ID_284789378" SOURCE="ID_811325982" STARTARROW="None" STARTINCLINATION="-530;-37;"/>
<node COLOR="#338800" CREATED="1733577283965" ID="ID_1817704532" MODIFIED="1736091021023" TEXT="feedParam">
<linktarget COLOR="#406cd3" DESTINATION="ID_1817704532" ENDARROW="Default" ENDINCLINATION="-218;836;" ID="Arrow_ID_1757085786" SOURCE="ID_1409065567" STARTARROW="None" STARTINCLINATION="-769;70;"/>
@ -92630,15 +92635,21 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node CREATED="1733527812520" ID="ID_1146074169" MODIFIED="1733527820418" TEXT="Source &#x27f6; Node"/>
<node CREATED="1733527821742" ID="ID_1156747071" MODIFIED="1733527871646" TEXT="Node &#x27f7; Cache"/>
<node CREATED="1733527841026" ID="ID_861387753" MODIFIED="1733527860172" TEXT="Result &#x27f5; Node"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733527812520" ID="ID_1146074169" MODIFIED="1740002368961" TEXT="Source &#x27f6; Node">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733527821742" ID="ID_1156747071" MODIFIED="1740002368961" TEXT="Node &#x27f7; Cache">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733527841026" ID="ID_861387753" MODIFIED="1740002368960" TEXT="Result &#x27f5; Node">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1713821694886" ID="ID_1102491970" MODIFIED="1733527508420" TEXT="NodeLink_test">
</node>
<node COLOR="#338800" CREATED="1713821694886" ID="ID_1102491970" MODIFIED="1740002376691" TEXT="NodeLink_test">
<linktarget COLOR="#fdd3b6" DESTINATION="ID_1102491970" ENDARROW="Default" ENDINCLINATION="-366;-51;" ID="Arrow_ID_1227159439" SOURCE="ID_943908122" STARTARROW="None" STARTINCLINATION="30;255;"/>
<linktarget COLOR="#78606d" DESTINATION="ID_1102491970" ENDARROW="Default" ENDINCLINATION="-1276;-2250;" ID="Arrow_ID_187211972" SOURCE="ID_1428576691" STARTARROW="None" STARTINCLINATION="-962;146;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#61226b" CREATED="1733532301363" ID="ID_902320359" MODIFIED="1733532511373" STYLE="bubble" TEXT="&#xbb;Centrepiece&#xab;">
<richcontent TYPE="NOTE"><html>
<head/>
@ -92650,8 +92661,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="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;"/>
<node COLOR="#338800" CREATED="1713823379083" ID="ID_673154392" LINK="#ID_888185703" MODIFIED="1740002384856" TEXT="die drei Stufen der Verschaltung">
<linktarget COLOR="#01c3fe" 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="#c8c0b6" COLOR="#435e98" CREATED="1718843482825" ID="ID_312625997" MODIFIED="1738781709536" TEXT="Nodes konstruieren und bauen">
<icon BUILTIN="full-1"/>
@ -92659,14 +92670,14 @@ 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="#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="pencil"/>
<node COLOR="#338800" CREATED="1718925986694" ID="ID_1898452649" MODIFIED="1740002594628" TEXT="Struktur der Connectivity neu aufbauen">
<arrowlink COLOR="#41568c" DESTINATION="ID_1064805768" ENDARROW="Default" ENDINCLINATION="347;215;" ID="Arrow_ID_1648312561" STARTARROW="None" STARTINCLINATION="148;-17;"/>
<icon BUILTIN="button_ok"/>
<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"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1718927843580" ID="ID_1971619594" MODIFIED="1718927889643" TEXT="ich mu&#xdf; wohl die Invocation-Sequenz nochmal durchdenken">
<node COLOR="#435e98" CREATED="1718927843580" ID="ID_1971619594" MODIFIED="1740002348442" TEXT="ich mu&#xdf; wohl die Invocation-Sequenz nochmal durchdenken">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1718932766972" ID="ID_616923504" MODIFIED="1718933366650" TEXT="mount">
<icon BUILTIN="full-1"/>
@ -102821,10 +102832,10 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728785502988" HGAP="66" ID="ID_1973895762" MODIFIED="1732848541775" TEXT="Prototyping-1" VSHIFT="6">
<node COLOR="#338800" CREATED="1728785502988" HGAP="66" ID="ID_1973895762" MODIFIED="1740002750813" TEXT="Prototyping-1" VSHIFT="6">
<linktarget COLOR="#28c32f" 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;"/>
<icon BUILTIN="pencil"/>
<linktarget COLOR="#36acff" DESTINATION="ID_1973895762" ENDARROW="Default" ENDINCLINATION="-884;1900;" ID="Arrow_ID_208548527" SOURCE="ID_694989290" STARTARROW="None" STARTINCLINATION="369;22;"/>
<icon BUILTIN="button_ok"/>
<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;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
@ -103473,8 +103484,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1730821117360" ID="ID_887734089" MODIFIED="1739117221196" TEXT="komplexere Node-Trees">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1730821117360" ID="ID_887734089" MODIFIED="1740002754444" TEXT="komplexere Node-Trees">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#b0bbe9" COLOR="#435e98" CREATED="1730827675866" ID="ID_97803520" MODIFIED="1739225330512" 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;"/>
<icon BUILTIN="info"/>
@ -104618,10 +104629,10 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<arrowlink COLOR="#2c566d" DESTINATION="ID_927640003" ENDARROW="Default" ENDINCLINATION="-258;14;" ID="Arrow_ID_1285815765" STARTARROW="None" STARTINCLINATION="-1;-82;"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1732850184292" ID="ID_1540586352" MODIFIED="1739117411808" TEXT="Spec-Record aufbauen">
<node COLOR="#338800" CREATED="1732850184292" ID="ID_1540586352" MODIFIED="1740002730678" TEXT="Spec-Record aufbauen">
<linktarget COLOR="#4b78ba" DESTINATION="ID_1540586352" ENDARROW="Default" ENDINCLINATION="848;-1866;" ID="Arrow_ID_483514515" SOURCE="ID_1799637117" STARTARROW="None" STARTINCLINATION="1141;70;"/>
<linktarget COLOR="#4d6e8c" DESTINATION="ID_1540586352" ENDARROW="Default" ENDINCLINATION="155;-1061;" ID="Arrow_ID_90130139" SOURCE="ID_1479776612" STARTARROW="None" STARTINCLINATION="452;98;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1733004042912" ID="ID_1096486793" MODIFIED="1733080479928" TEXT="das hier ist zugleich Platzhalter und Keimzelle">
<arrowlink COLOR="#b91c52" DESTINATION="ID_845660931" ENDARROW="Default" ENDINCLINATION="572;31;" ID="Arrow_ID_1879161582" STARTARROW="Default" STARTINCLINATION="268;992;"/>
<icon BUILTIN="idea"/>
@ -104868,9 +104879,9 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728785502988" ID="ID_1772786102" MODIFIED="1739116146953" TEXT="Prototyping-2">
<linktarget COLOR="#ff6936" DESTINATION="ID_1772786102" ENDARROW="Default" ENDINCLINATION="-884;1900;" ID="Arrow_ID_132570707" SOURCE="ID_115515850" STARTARROW="None" STARTINCLINATION="82;4;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1728785502988" ID="ID_1772786102" MODIFIED="1740002818884" TEXT="Prototyping-2">
<linktarget COLOR="#36acff" DESTINATION="ID_1772786102" ENDARROW="Default" ENDINCLINATION="-884;1900;" ID="Arrow_ID_132570707" SOURCE="ID_115515850" STARTARROW="None" STARTINCLINATION="157;8;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1728786122944" ID="ID_1755127890" MODIFIED="1739220414318" TEXT="TestFrame und Frame-Nummern einf&#xfc;hren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1728786146493" ID="ID_1993277373" MODIFIED="1736113145473" TEXT="Einstieg in das Turnout-System kl&#xe4;ren">
@ -105549,8 +105560,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728786202710" ID="ID_503859904" MODIFIED="1739116131941" TEXT="Berechnungs-Verifikation aufbauen">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1728786202710" ID="ID_503859904" MODIFIED="1740002724070" TEXT="Berechnungs-Verifikation aufbauen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1728786300177" ID="ID_317306309" MODIFIED="1739154762839" TEXT="Formale Anordnung in der Test-Ontology festlegen">
<icon BUILTIN="button_ok"/>
</node>
@ -105558,7 +105569,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1728786359782" ID="ID_525505656" MODIFIED="1739220370763" TEXT="Spec und Seed generieren und verarbeiten">
<linktarget COLOR="#6e409a" DESTINATION="ID_525505656" ENDARROW="Default" ENDINCLINATION="-260;17;" ID="Arrow_ID_1565815419" SOURCE="ID_348689410" STARTARROW="None" STARTINCLINATION="-71;-3;"/>
<linktarget COLOR="#40499a" DESTINATION="ID_525505656" ENDARROW="Default" ENDINCLINATION="-260;17;" ID="Arrow_ID_1565815419" SOURCE="ID_348689410" STARTARROW="None" STARTINCLINATION="-71;-3;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1739116807329" ID="ID_9254864" MODIFIED="1739220364095" TEXT="zus&#xe4;tzliche Test-Node-Builder anlegen">
<icon BUILTIN="button_ok"/>
@ -105699,11 +105710,11 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1739116113868" ID="ID_147760472" MODIFIED="1739116278312" TEXT="Kompletter Node-Graph mit TestFrames">
<linktarget COLOR="#ca2962" DESTINATION="ID_147760472" ENDARROW="Default" ENDINCLINATION="439;656;" ID="Arrow_ID_1735261452" SOURCE="ID_511222539" STARTARROW="None" STARTINCLINATION="515;36;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1739116716548" ID="ID_348689410" MODIFIED="1739116790424" TEXT="brauche Test-Nodes">
<arrowlink COLOR="#6e409a" DESTINATION="ID_525505656" ENDARROW="Default" ENDINCLINATION="-260;17;" ID="Arrow_ID_1565815419" STARTARROW="None" STARTINCLINATION="-71;-3;"/>
<node COLOR="#338800" CREATED="1739116113868" ID="ID_147760472" MODIFIED="1740002769554" TEXT="Kompletter Node-Graph mit TestFrames">
<linktarget COLOR="#237b89" DESTINATION="ID_147760472" ENDARROW="Default" ENDINCLINATION="439;656;" ID="Arrow_ID_1735261452" SOURCE="ID_511222539" STARTARROW="None" STARTINCLINATION="515;36;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1739116716548" ID="ID_348689410" MODIFIED="1740002719458" TEXT="brauche Test-Nodes">
<arrowlink COLOR="#40499a" DESTINATION="ID_525505656" ENDARROW="Default" ENDINCLINATION="-260;17;" ID="Arrow_ID_1565815419" STARTARROW="None" STARTINCLINATION="-71;-3;"/>
<icon BUILTIN="yes"/>
<node COLOR="#435e98" CREATED="1739152096185" ID="ID_419285469" MODIFIED="1739154614858" TEXT="Problem mit korrumpierten Node-IDs">
<arrowlink COLOR="#e00e57" DESTINATION="ID_93765980" ENDARROW="Default" ENDINCLINATION="-837;47;" ID="Arrow_ID_1352551175" STARTARROW="None" STARTINCLINATION="845;59;"/>
@ -105729,11 +105740,11 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739116294867" ID="ID_495521485" MODIFIED="1739137027196" TEXT="Node-Setup im NodeDevel_test dokumentieren">
<node COLOR="#338800" CREATED="1739116294867" ID="ID_495521485" MODIFIED="1740002222931" TEXT="Node-Setup im NodeDevel_test dokumentieren">
<arrowlink COLOR="#2c80c0" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="1567;83;" ID="Arrow_ID_1998396288" STARTARROW="None" STARTINCLINATION="-765;-533;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1739227357843" ID="ID_1733197389" MODIFIED="1739227371209" TEXT="komplexere Situation hier">
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1739227357843" ID="ID_1733197389" MODIFIED="1740002204741" TEXT="komplexere Situation hier">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1739227373529" ID="ID_1597993872" MODIFIED="1739227383031" TEXT="es sollen mehrere Str&#xe4;nge gebaut werden"/>
<node CREATED="1739227384419" ID="ID_1635488686" MODIFIED="1739227406112" TEXT="partielle Closure an den Src-Nodes">
@ -105741,7 +105752,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node CREATED="1739227422164" ID="ID_1152507517" MODIFIED="1739227498532" TEXT="aber die FrameNr soll zentral f&#xfc;r den Aufruf gesteuert werden"/>
<node CREATED="1739227586467" ID="ID_185979462" MODIFIED="1739227592207" TEXT="ebenso der mix-Parameter"/>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1739227626959" ID="ID_1247032689" MODIFIED="1739227642973" TEXT="wie weit geht dieser Test sinvollerweise?">
<node COLOR="#435e98" CREATED="1739227626959" ID="ID_1247032689" MODIFIED="1740002207950" TEXT="wie weit geht dieser Test sinvollerweise?">
<icon BUILTIN="help"/>
<node CREATED="1739227653557" ID="ID_1671511099" MODIFIED="1739227668629" TEXT="einerseits: Emulieren einer realistischen Situation">
<node CREATED="1739227917876" ID="ID_1784104074" MODIFIED="1739227925718" TEXT="realistisch w&#xe4;re....">
@ -105765,7 +105776,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node CREATED="1739227684914" ID="ID_1108065190" MODIFIED="1739227736066" TEXT="und das scaffolding mu&#xdf; im Test-Code verst&#xe4;ndlich bleiben">
<node CREATED="1739228198716" ID="ID_566097177" MODIFIED="1739228220611" TEXT="sollte also m&#xf6;glichst die Standard Node-Builder-F&#xe4;lle nutzen"/>
</node>
<node CREATED="1739227741390" ID="ID_803165715" MODIFIED="1739988451652" TEXT="aber dieser 3.Testfall kann schon noch ein Zacken komplexer sein">
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1739227741390" ID="ID_803165715" MODIFIED="1740002211926" TEXT="aber dieser 3.Testfall kann schon noch ein Zacken komplexer sein">
<icon BUILTIN="forward"/>
<node CREATED="1739228229334" ID="ID_1295084534" MODIFIED="1739228240372" TEXT="es k&#xf6;nnte schon ein Integrationstest sein"/>
<node CREATED="1739228241556" ID="ID_481563144" MODIFIED="1739228254206" TEXT="...der diese ganze Prototyping-Phase besiegelt"/>
@ -105781,7 +105792,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1739229073559" ID="ID_742095594" MODIFIED="1739907872979" TEXT="Test-Konzept">
<node COLOR="#435e98" CREATED="1739229073559" ID="ID_742095594" MODIFIED="1740002200415" TEXT="Test-Konzept">
<icon BUILTIN="yes"/>
<node CREATED="1739229080787" ID="ID_508301525" MODIFIED="1739229206584" TEXT="komplett &#xfc;ber das Turnout-System steuern"/>
<node CREATED="1739229119334" ID="ID_144074931" MODIFIED="1739229138054" TEXT="es gibt ein einfaches Frame-Grid zur &#xdc;bersetzung in Frame-Nr"/>
@ -106415,33 +106426,39 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node CREATED="1739926551533" ID="ID_1744658909" MODIFIED="1739926586194" TEXT="in Schleife aufrufen f&#xfc;r einen Zeitbereich">
<node CREATED="1739926858394" ID="ID_1310843645" MODIFIED="1739926874449" TEXT="jeweils einen Output-Buffer belegen"/>
<node CREATED="1739926876070" ID="ID_1858797669" MODIFIED="1739926959714" TEXT="einen zuf&#xe4;lligen Zeitpunkt ziehen"/>
<node CREATED="1739926961967" ID="ID_763806405" MODIFIED="1739926983118" TEXT="Node aufrufen und Checksumme abgreifen"/>
<node CREATED="1739926984356" ID="ID_1685710106" MODIFIED="1739926999349" TEXT="Sofort die Berechnung bare-bone-wiederholen"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1739927022286" ID="ID_1569493230" MODIFIED="1739927035564" TEXT="was mache ich mit den drei Ports?">
<node COLOR="#338800" CREATED="1739926551533" ID="ID_1744658909" MODIFIED="1740002836728" TEXT="in Schleife aufrufen f&#xfc;r einen Zeitbereich">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1739926858394" ID="ID_1310843645" MODIFIED="1740002845390" TEXT="jeweils einen Output-Buffer belegen"/>
<node COLOR="#435e98" CREATED="1739926876070" ID="ID_1858797669" MODIFIED="1740002845391" TEXT="einen zuf&#xe4;lligen Zeitpunkt ziehen"/>
<node COLOR="#435e98" CREATED="1739926961967" ID="ID_763806405" MODIFIED="1740002845390" TEXT="Node aufrufen und Checksumme abgreifen"/>
<node COLOR="#435e98" CREATED="1739926984356" ID="ID_1685710106" MODIFIED="1740002845390" TEXT="Sofort die Berechnung bare-bone-wiederholen"/>
<node COLOR="#435e98" CREATED="1739927022286" ID="ID_1569493230" MODIFIED="1740002192624" TEXT="was mache ich mit den drei Ports?">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
<node CREATED="1739974041862" ID="ID_152876783" MODIFIED="1739974050013" TEXT="M&#xf6;glichkeit-1 : random ausw&#xe4;hlen"/>
<node CREATED="1739974052425" ID="ID_922254600" MODIFIED="1739974061779" TEXT="M&#xf6;glichkeit-2 : zusammenf&#xfc;hren">
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1739974041862" ID="ID_152876783" LINK="#ID_425082423" MODIFIED="1740002194920" TEXT="M&#xf6;glichkeit-1 : random ausw&#xe4;hlen">
<icon BUILTIN="forward"/>
</node>
<node COLOR="#5b280f" CREATED="1739974052425" ID="ID_922254600" MODIFIED="1739998333827" TEXT="M&#xf6;glichkeit-2 : zusammenf&#xfc;hren">
<icon BUILTIN="button_cancel"/>
<node CREATED="1739974072046" ID="ID_599872890" MODIFIED="1739974079369" TEXT="das w&#xfc;rde den Test deutlich versch&#xe4;rfen"/>
<node CREATED="1739998336851" ID="ID_985762670" MODIFIED="1739998348014" TEXT="aber auch komplexer / schwerer verst&#xe4;ndlich machen"/>
<node CREATED="1739998358009" ID="ID_427444010" MODIFIED="1739998378784" TEXT="schie&#xdf;t &#xfc;ber das Ziel hinaus &#x27f8; das hier ist kein Lasttest"/>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739988475500" ID="ID_1619027230" MODIFIED="1739988486611" TEXT="Node-Setup aufbauen">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1739988475500" ID="ID_1619027230" MODIFIED="1739998328313" TEXT="Node-Setup aufbauen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1739988488649" ID="ID_1937491223" MODIFIED="1739988507621" TEXT="per copy-n-paste aus den vorhergehenden Testf&#xe4;llen">
<icon BUILTIN="ksmiletris"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739988510201" ID="ID_658104724" MODIFIED="1739988915058" TEXT="brauche Param-Node">
<icon BUILTIN="pencil"/>
<node CREATED="1739988517197" ID="ID_68703644" MODIFIED="1739988528313" TEXT="definiere eine Param-Spec mit (nur) einem Slot"/>
<node CREATED="1739988529403" ID="ID_11348533" MODIFIED="1739988557117" TEXT="dieser Slot macht die Time &#x27fc; Frame-Quantisierung"/>
<node CREATED="1739989858137" ID="ID_900282341" MODIFIED="1739989865292" TEXT="Accessor speichern"/>
<node CREATED="1739989866288" ID="ID_493861231" MODIFIED="1739989875603" TEXT="Accessor in nachgeschalteter Automation verwenden"/>
<node COLOR="#338800" CREATED="1739988510201" ID="ID_658104724" MODIFIED="1739998319207" TEXT="brauche Param-Node">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1739988517197" ID="ID_68703644" MODIFIED="1739998325901" TEXT="definiere eine Param-Spec mit (nur) einem Slot"/>
<node COLOR="#435e98" CREATED="1739988529403" ID="ID_11348533" MODIFIED="1739998325902" TEXT="dieser Slot macht die Time &#x27fc; Frame-Quantisierung"/>
<node COLOR="#435e98" CREATED="1739989858137" ID="ID_900282341" MODIFIED="1739998325902" TEXT="Accessor speichern"/>
<node COLOR="#435e98" CREATED="1739989866288" ID="ID_493861231" MODIFIED="1739998325902" TEXT="Accessor in nachgeschalteter Automation verwenden"/>
<node COLOR="#338800" CREATED="1739989877848" ID="ID_1873390720" MODIFIED="1739989886659" TEXT="Param-Node per NodeBuilder konstruieren">
<icon BUILTIN="button_ok"/>
</node>
@ -106449,19 +106466,169 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node COLOR="#338800" CREATED="1739989888437" ID="ID_1096325319" MODIFIED="1739989899313" TEXT="geht durch den Compiler">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1739989900451" ID="ID_1706149148" MODIFIED="1739989907994" TEXT="Invocation....">
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1739989909161" ID="ID_1372911486" MODIFIED="1739989918255" TEXT="scheitert mit Exception">
</node>
<node COLOR="#338800" CREATED="1739998411403" ID="ID_1652134621" MODIFIED="1740002088193" TEXT="Ergebnis-Verifikation">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1739998423254" ID="ID_759336008" MODIFIED="1740002185513" TEXT="als &#x3bb; formulieren">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#435e98" CREATED="1740002100351" ID="ID_454645336" MODIFIED="1740002185514" TEXT="sehr einfach: mit zwei direkt definierten Buffern arbeiten"/>
<node COLOR="#435e98" CREATED="1740002114494" ID="ID_798310196" MODIFIED="1740002185514" TEXT="bestehende &#x3bb; f&#xfc;r die Automations-Parameter verwenden"/>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#338800" CREATED="1740002153549" ID="ID_1822605070" MODIFIED="1740002181274" TEXT="zuf&#xe4;llig sampeln &#x2014; darf nicht von der Reihenfolge abh&#xe4;ngen">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1739989900451" ID="ID_1706149148" MODIFIED="1740002084668" TEXT="Invocation....">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1739989909161" FOLDED="true" ID="ID_1372911486" MODIFIED="1740002094485" TEXT="scheitert mit Exception">
<icon BUILTIN="broken-line"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1739990057078" ID="ID_820424784" MODIFIED="1739990076825" TEXT="TestFrame: missing or corrupted metadata">
<icon BUILTIN="info"/>
</node>
<node CREATED="1739994905413" ID="ID_485985065" MODIFIED="1739994944210">
<richcontent TYPE="NODE"><html>
<head/>
<body>
<p>
in combineFrames() : <font face="Monospaced">out-&gt;markChecksum();</font>
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1739989985056" ID="ID_1521515943" MODIFIED="1739990002894" TEXT="Beobachtung: 3 clean-up-Meldungen vom DiagnosticBufferProvider">
<node CREATED="1739994951298" ID="ID_503296743" MODIFIED="1739994990115" TEXT="es handelt sich um den Output-Buffer">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
zun&#228;chst formal, aber habe das per Debugger best&#228;tigt
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1739994991816" ID="ID_796908889" MODIFIED="1739995567324" TEXT="in der Tat: den m&#xfc;ssen &#xbb;wir&#xab; initialisieren">
<icon BUILTIN="yes"/>
<node CREATED="1739995028421" ID="ID_1203606301" MODIFIED="1739995580284" TEXT="die Node-Invocation fa&#xdf;t diesen Buffer nicht an">
<icon BUILTIN="info"/>
</node>
<node COLOR="#435e98" CREATED="1739995104092" ID="ID_1972097019" MODIFIED="1739995606423">
<richcontent TYPE="NODE"><html>
<head/>
<body>
<p>
aber &#8212;
</p>
<p>
warum funktioniert das dann
</p>
<p>
f&#252;r Arbeit-Buffer in der Engine?
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1739995172736" ID="ID_1925224256" MODIFIED="1739995182954" TEXT="WeavingPatternBuilder::BufferDescriptor&lt;BU&gt;"/>
<node CREATED="1739995198479" ID="ID_423716721" MODIFIED="1739995210190" TEXT="macht BufferProvider::getDescriptor&lt;BU&gt;()">
<icon BUILTIN="idea"/>
<node BACKGROUND_COLOR="#dfdcb6" COLOR="#435e98" CREATED="1739995293480" HGAP="22" ID="ID_385850486" MODIFIED="1739995333342" TEXT="(ruft den Konstruktor auf)" VSHIFT="1">
<font NAME="SansSerif" SIZE="10"/>
</node>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1739995211895" ID="ID_1518004238" MODIFIED="1739995249917" TEXT="und der Test macht: getDescriptorFor(sizeof(TestFrame))">
<icon BUILTIN="broken-line"/>
</node>
<node COLOR="#684398" CREATED="1739995255997" ID="ID_899463807" MODIFIED="1739995282253" TEXT="ja dann KANNS ja nicht funktionieren">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1739989985056" FOLDED="true" ID="ID_1521515943" MODIFIED="1740002091858" TEXT="Beobachtung: 3 clean-up-Meldungen vom DiagnosticBufferProvider">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1739990004438" ID="ID_1675021686" MODIFIED="1739990013969" TEXT="wir verwenden nur zwei Instanzen">
<icon BUILTIN="info"/>
</node>
<node CREATED="1739990015547" ID="ID_75625440" MODIFIED="1739990022949" TEXT="woher kommt die 3.Meldung?"/>
<node CREATED="1739990015547" ID="ID_75625440" MODIFIED="1739990022949" TEXT="woher kommt die 3.Meldung?">
<node CREATED="1739997837272" ID="ID_1595067395" MODIFIED="1739997848711" TEXT="Antwort: vom EngineCtx">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1739996446886" ID="ID_33653959" MODIFIED="1739997831526" TEXT="Debugger...">
<icon BUILTIN="list"/>
<node CREATED="1739996453021" ID="ID_244917660" MODIFIED="1739996474157" TEXT="1.Aufruf : 2. DiagnosticBufferProvider::build() ">
<node CREATED="1739996487733" ID="ID_792813589" MODIFIED="1739996501521" TEXT="bereits in &quot;unserem&quot; Tesfall trigger_node_port_invocation()"/>
<node CREATED="1739996502821" ID="ID_1223001304" MODIFIED="1739996522548" TEXT="r&#xe4;umt die alte Instanz weg"/>
<node CREATED="1739996523505" ID="ID_1187691861" MODIFIED="1739996529852" TEXT="diese h&#xe4;lt 10 Buffer"/>
<node CREATED="1739996532345" ID="ID_1405399377" MODIFIED="1739996548594" TEXT="korrekt! wir haben im vorhergehenden Test 10 Invocations gemacht"/>
</node>
<node CREATED="1739996597894" ID="ID_1814842328" MODIFIED="1739996629151" TEXT="2,Aufruf : global dtors -&gt; ~EngineCtx">
<node CREATED="1739996722266" ID="ID_249223142" MODIFIED="1739996751375" TEXT="Ah: EngineCtx::Facilies()-ctor erzeugt frei stehend einen TrackingHeapBlockProvider"/>
<node CREATED="1739996788638" ID="ID_1224026765" MODIFIED="1739996824633" TEXT="dieser enth&#xe4;lt noch 14 Eintr&#xe4;ge in der outSeq (&#x2259; bereits released)"/>
<node COLOR="#338800" CREATED="1739997524466" ID="ID_344498486" MODIFIED="1739997820095" TEXT="nachz&#xe4;hlen....">
<icon BUILTIN="yes"/>
<node CREATED="1739997531625" ID="ID_835441685" MODIFIED="1739997545578" TEXT="source-Nodes &#xfc;berschreiben direkt den gegebenen output-Buffer"/>
<node CREATED="1739997546686" ID="ID_31480467" MODIFIED="1739997629596" TEXT="Filter-Nodes beziehen jeweils 1 Buffer (in) von der Source-Node">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
d.h. die source-Node alloziert hier einen Buffer vom generischen Provider
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1739997583009" ID="ID_1824407383" MODIFIED="1739997606586" TEXT="Mix-Nodes beziehen jewils 2 Buffer von den Src-Chains"/>
<node CREATED="1739997651096" ID="ID_1941424941" MODIFIED="1739997655320" TEXT="Testfall-1">
<node CREATED="1739997656727" ID="ID_1646577092" MODIFIED="1739997662739" TEXT="2 Aufrufe Filter"/>
<node CREATED="1739997670126" ID="ID_996103596" MODIFIED="1739997700883" TEXT="3 Aufrufe Mix&lt;-Filter (jeweils 3 Buffer)"/>
<node CREATED="1739997713056" ID="ID_381173803" MODIFIED="1739997739763" TEXT="2 + 9 &#x2261; 11"/>
</node>
<node CREATED="1739997742146" ID="ID_1247308050" MODIFIED="1739997747628" TEXT="Testfall-2">
<node CREATED="1739997760193" ID="ID_5173358" MODIFIED="1739997767764" TEXT="Param-Node alloziert nicht"/>
<node CREATED="1739997749163" ID="ID_1406853014" MODIFIED="1739997782001" TEXT="derzeit ein Mix-Aufruf &#x27f9; 3 zus&#xe4;tzliche Buffer"/>
</node>
<node CREATED="1739997788487" ID="ID_385347551" MODIFIED="1739997805536" TEXT="zusammen 14 &#x27f9; stimmt auff&#xe4;llig"/>
</node>
</node>
<node CREATED="1739996909592" ID="ID_1484496040" MODIFIED="1739997303388" TEXT="3.Aufruf : global dtors -&gt; DiagnosticBufferProvider - singleton">
<node CREATED="1739997332434" ID="ID_1550520563" MODIFIED="1739997342992" TEXT="enth&#xe4;lt noch 1 Element in der outSeq"/>
<node CREATED="1739997363745" ID="ID_1713919886" MODIFIED="1739997373075" TEXT="korrekt! das ist unser einer outut-Buffer"/>
</node>
</node>
<node COLOR="#338800" CREATED="1739997851958" ID="ID_614118073" MODIFIED="1739998304050" TEXT="Anzahl korrekt">
<linktarget COLOR="#1d9538" DESTINATION="ID_614118073" ENDARROW="Default" ENDINCLINATION="-89;-16;" ID="Arrow_ID_1017207163" SOURCE="ID_381449954" STARTARROW="None" STARTINCLINATION="5;-19;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1739997880292" ID="ID_1352949463" MODIFIED="1739997885350" TEXT="erzeugte und freigegebene Buffer"/>
<node CREATED="1739997886386" ID="ID_1921148768" MODIFIED="1739997894069" TEXT="das ist bereits die Maximal-Zahl"/>
<node CREATED="1739997895173" ID="ID_1896868224" MODIFIED="1739997911554" TEXT="&#x27f9; es kann keine nicht-freigegebenen Buffer geben"/>
</node>
</node>
<node BACKGROUND_COLOR="#174956" COLOR="#8dfd49" CREATED="1739995679361" ID="ID_666676565" MODIFIED="1739995690692" STYLE="bubble" TEXT="komplexer Integrationstest l&#xe4;uft!!">
<edge COLOR="#61fe5b" STYLE="bezier" WIDTH="thin"/>
<font NAME="SansSerif" SIZE="17"/>
<node COLOR="#338800" CREATED="1739998196190" ID="ID_381449954" MODIFIED="1739998304050" STYLE="fork" TEXT="Zahl der belegten Buffer ist korrekt">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
in einem Einzelfall von Hand nachgez&#228;hlt...
</p>
</body>
</html>
</richcontent>
<arrowlink COLOR="#1d9538" DESTINATION="ID_614118073" ENDARROW="Default" ENDINCLINATION="-89;-16;" ID="Arrow_ID_1017207163" STARTARROW="None" STARTINCLINATION="5;-19;"/>
<font NAME="SansSerif" SIZE="11"/>
</node>
<node COLOR="#338800" CREATED="1739998247294" ID="ID_1120933474" MODIFIED="1739998276883" STYLE="fork" TEXT="alle Buffer freigegeben">
<font NAME="SansSerif" SIZE="11"/>
</node>
<node COLOR="#338800" CREATED="1739998483074" ID="ID_425082423" MODIFIED="1739998503876" STYLE="fork" TEXT="mit random-Time aufgerufen">
<edge COLOR="#61fe5b" STYLE="bezier" WIDTH="thin"/>
<font NAME="SansSerif" SIZE="11"/>
</node>
<node COLOR="#338800" CREATED="1739999812283" ID="ID_1083642498" MODIFIED="1739999823152" STYLE="fork" TEXT="Checksummen korrekt">
<edge COLOR="#61fe5b" STYLE="bezier" WIDTH="thin"/>
<font NAME="SansSerif" SIZE="11"/>
</node>
</node>
</node>
@ -108607,12 +108774,12 @@ 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">
<node COLOR="#435e98" CREATED="1719163853932" ID="ID_1687553364" MODIFIED="1740002628028" TEXT="Konzept des Turnout-Systems">
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719163869980" ID="ID_1720848449" MODIFIED="1736198572912" TEXT="Struktur">
<node COLOR="#435e98" CREATED="1719163869980" ID="ID_1720848449" MODIFIED="1740002631493" TEXT="Struktur">
<icon BUILTIN="help"/>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1736198558585" ID="ID_152257218" MODIFIED="1736198572914" TEXT="Bedeutung">
<node COLOR="#435e98" CREATED="1736198558585" ID="ID_152257218" MODIFIED="1740002632748" TEXT="Bedeutung">
<icon BUILTIN="help"/>
</node>
<node COLOR="#435e98" CREATED="1719163874339" ID="ID_1903655361" MODIFIED="1738779508620" TEXT="Interface? Implementierung?">
@ -108787,8 +108954,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719186096499" ID="ID_1104635186" MODIFIED="1719186122029" TEXT="Diagnose-Setup">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1719186096499" ID="ID_1104635186" MODIFIED="1740002640927" TEXT="Diagnose-Setup">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1719186160563" ID="ID_1991257351" MODIFIED="1739055380228" TEXT="Interna eines Turnout auslesen">
<icon BUILTIN="button_ok"/>
</node>
@ -108828,36 +108995,35 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1718843561830" ID="ID_1092570310" MODIFIED="1739116662619" TEXT="Invocations ausl&#xf6;sen">
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1718843561830" ID="ID_1092570310" MODIFIED="1740002681959" TEXT="Invocations ausl&#xf6;sen">
<icon BUILTIN="full-3"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719181051848" ID="ID_27361429" MODIFIED="1736198513549" TEXT="Ziel f&#xfc;r diesen Testfall">
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1719181051848" ID="ID_27361429" MODIFIED="1740002672614" TEXT="Ziel f&#xfc;r diesen Testfall">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719181203922" ID="ID_18210204" MODIFIED="1739055346407" TEXT="wieder einen gleichartigen Node-Graphen bauen">
<node COLOR="#338800" CREATED="1719181203922" ID="ID_18210204" MODIFIED="1740002647178" 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"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736199146057" ID="ID_511222539" MODIFIED="1739116278312" TEXT="aber dieses Mal mit TestRandOntology">
<arrowlink COLOR="#ca2962" DESTINATION="ID_147760472" ENDARROW="Default" ENDINCLINATION="439;656;" ID="Arrow_ID_1735261452" STARTARROW="None" STARTINCLINATION="515;36;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739116294867" HGAP="59" ID="ID_656518843" MODIFIED="1739116698687" TEXT="Node-Setup im NodeDevel_test dokumentieren" VSHIFT="16">
<node COLOR="#338800" CREATED="1736199146057" ID="ID_511222539" MODIFIED="1740002659067" TEXT="aber dieses Mal mit TestRandOntology">
<arrowlink COLOR="#237b89" DESTINATION="ID_147760472" ENDARROW="Default" ENDINCLINATION="439;656;" ID="Arrow_ID_1735261452" STARTARROW="None" STARTINCLINATION="515;36;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1739116294867" HGAP="59" ID="ID_656518843" MODIFIED="1740002662878" TEXT="Node-Setup im NodeDevel_test dokumentieren" VSHIFT="16">
<arrowlink COLOR="#2c80c0" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="1749;97;" ID="Arrow_ID_723151145" STARTARROW="None" STARTINCLINATION="-985;-614;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
</node>
</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 COLOR="#338800" CREATED="1719182150605" ID="ID_1205483344" MODIFIED="1740002695699" TEXT="pr&#xfc;fen...">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1736199173072" ID="ID_503056617" MODIFIED="1740002688055" TEXT="Berechnungen laufen">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736199179773" ID="ID_69132680" MODIFIED="1736199214689" TEXT="Ergebnisse sind verifizierbar">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1736199179773" ID="ID_69132680" MODIFIED="1740002690295" TEXT="Ergebnisse sind verifizierbar">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1736199205282" ID="ID_1304975203" MODIFIED="1736199214689" TEXT="Parameter sind eingegangen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1736199205282" ID="ID_1304975203" MODIFIED="1740002692079" TEXT="Parameter sind eingegangen">
<icon BUILTIN="button_ok"/>
</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 COLOR="#338800" CREATED="1736199188090" ID="ID_202412964" MODIFIED="1740002693877" TEXT="formale Reihenfolge der Berechnungen ist korrekt">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
@ -108919,11 +109085,11 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<icon BUILTIN="xmag"/>
</node>
<node BACKGROUND_COLOR="#eeead5" COLOR="#990033" CREATED="1728785502988" ID="ID_694989290" MODIFIED="1729962183043" TEXT="Integration-1 : einfachst-m&#xf6;glicher Builder-Term">
<arrowlink COLOR="#ff6936" DESTINATION="ID_1973895762" ENDARROW="Default" ENDINCLINATION="-884;1900;" ID="Arrow_ID_208548527" STARTARROW="None" STARTINCLINATION="369;22;"/>
<arrowlink COLOR="#36acff" DESTINATION="ID_1973895762" ENDARROW="Default" ENDINCLINATION="-884;1900;" ID="Arrow_ID_208548527" STARTARROW="None" STARTINCLINATION="369;22;"/>
<icon BUILTIN="xmag"/>
</node>
<node BACKGROUND_COLOR="#eeead5" COLOR="#990033" CREATED="1728785502988" ID="ID_115515850" MODIFIED="1729962174596" TEXT="Integration-2 : Test-Berechnung inhaltlich ausf&#xfc;hren">
<arrowlink COLOR="#ff6936" DESTINATION="ID_1772786102" ENDARROW="Default" ENDINCLINATION="-884;1900;" ID="Arrow_ID_132570707" STARTARROW="None" STARTINCLINATION="82;4;"/>
<node BACKGROUND_COLOR="#eeead5" COLOR="#990033" CREATED="1728785502988" ID="ID_115515850" MODIFIED="1740002818884" TEXT="Integration-2 : Test-Berechnung inhaltlich ausf&#xfc;hren">
<arrowlink COLOR="#36acff" DESTINATION="ID_1772786102" ENDARROW="Default" ENDINCLINATION="-884;1900;" ID="Arrow_ID_132570707" STARTARROW="None" STARTINCLINATION="157;8;"/>
<icon BUILTIN="xmag"/>
</node>
<node BACKGROUND_COLOR="#eeead5" COLOR="#990033" CREATED="1720622703868" ID="ID_527170177" MODIFIED="1729962145775" TEXT="Flexibilisierung der Strukturen">