Invocation: cover definition of a »Test-Rand« filter-node

The scheme to provide preconfigured nodes with random `TestFrame` data
seems to be suitable and easy to extend to further cases; should however
always document the setup through a dedicated case in `NodeDevel_test`
This commit is contained in:
Fischlurch 2025-02-09 23:05:41 +01:00
parent b9b80ce923
commit 5121bce156
2 changed files with 144 additions and 8 deletions

View file

@ -333,6 +333,20 @@ namespace test {
buffHandle.release();
}
/** shortcut to simplify the following test cases */
static ProcNode
makeSrcNode (ont::FraNo frameNr, ont::Flavr flavour)
{
auto spec = testRand().setupGenerator();
return prepareNode(spec.nodeID())
.preparePort()
.invoke(spec.procID(), spec.makeFun())
.setParam(frameNr,flavour)
.completePort()
.build();
}
/** @test use the »TestRand«-framework to setup a filter node
*
@ -349,6 +363,42 @@ namespace test {
CHECK (showType<Sig>() == "void (ulong, engine::test::TestFrame const*, engine::test::TestFrame*)"_expect);
// Results can be verified by ont::manipulateFrame() — see above
size_t frameNr = defaultGen.u64();
uint flavour = defaultGen.u64();
uint64_t param = defaultGen.u64();
Buffer buff;
buff.buildData(frameNr,flavour);
CHECK (buff->isPristine());
// Invoke the processing-functor directly
procFun (param, buff,buff);
CHECK ( buff->isValid());
CHECK (not buff->isPristine());
HashVal checksum = buff->markChecksum();
// reproduce the same checksum...
buff.buildData(frameNr,flavour);
CHECK (buff->isPristine());
CHECK (checksum != buff->markChecksum());
ont::manipulateFrame (buff, buff, param);
CHECK (checksum == buff->markChecksum());
// Build a node using this processing-functor...
ProcNode nSrc = makeSrcNode (frameNr,flavour);
ProcNode nFilt{prepareNode(spec.nodeID())
.preparePort()
.invoke(spec.procID(), procFun)
.setParam(param)
.connectLead(nSrc)
.completePort()
.build()};
CHECK (watch(nSrc).isSrc());
CHECK (not watch(nFilt).isSrc());
SHOW_EXPR(watch(nSrc).getNodeSpec() );
SHOW_EXPR(watch(nFilt).getNodeSpec() );
SHOW_EXPR(watch(nFilt).getPortSpec(0) );
}

View file

@ -92243,7 +92243,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739116464928" ID="ID_770787154" MODIFIED="1739116830133" TEXT="Test-Nodes f&#xfc;r typische Verarbeitungsschrite">
<arrowlink COLOR="#476dba" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="168;0;" ID="Arrow_ID_265273895" STARTARROW="None" STARTINCLINATION="-640;0;"/>
<arrowlink COLOR="#aa1b54" DESTINATION="ID_551457644" ENDARROW="Default" ENDINCLINATION="799;-53;" ID="Arrow_ID_1372658878" STARTARROW="None" STARTINCLINATION="225;13;"/>
<arrowlink COLOR="#aa1b54" DESTINATION="ID_551457644" ENDARROW="Default" ENDINCLINATION="799;-53;" ID="Arrow_ID_1372658878" STARTARROW="None" STARTINCLINATION="374;22;"/>
<icon BUILTIN="pencil"/>
</node>
</node>
@ -92252,10 +92252,10 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1739116383263" ID="ID_596205632" MODIFIED="1739116698687" TEXT="Test-Node-Setups dokumentieren">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1739116383263" ID="ID_596205632" MODIFIED="1739137027197" TEXT="Test-Node-Setups dokumentieren">
<linktarget COLOR="#476dba" 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="139;11;" ID="Arrow_ID_723151145" SOURCE="ID_656518843" STARTARROW="None" STARTINCLINATION="-985;-614;"/>
<linktarget COLOR="#2c80c0" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="139;11;" ID="Arrow_ID_1998396288" SOURCE="ID_495521485" STARTARROW="None" STARTINCLINATION="-765;-533;"/>
<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="flag-yellow"/>
</node>
</node>
@ -104225,8 +104225,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1732850184292" ID="ID_1540586352" MODIFIED="1739117411808" TEXT="Spec-Record aufbauen">
<linktarget COLOR="#4d6e8c" DESTINATION="ID_1540586352" ENDARROW="Default" ENDINCLINATION="155;-1061;" ID="Arrow_ID_90130139" SOURCE="ID_1479776612" STARTARROW="None" STARTINCLINATION="452;98;"/>
<linktarget COLOR="#7d4bba" 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"/>
<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;"/>
@ -104326,6 +104326,92 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1739137093444" ID="ID_193888110" MODIFIED="1739138230995" TEXT="Integration mit NodeBuilder erm&#xf6;glichen">
<icon BUILTIN="help"/>
<node CREATED="1739137106908" ID="ID_1390835704" MODIFIED="1739138922196" TEXT="fragt sich blo&#xdf;: wie &#x2014; der ist generisch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn in der Policy steckt die Vorgschichte des jeweiligen Build-Vorgangs &#8212; und auch der Allokator!
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1739138056436" ID="ID_297538159" MODIFIED="1739138152372" TEXT="und es ist kein point-and-shot">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die DomainOntology mu&#223; jeweils nur einige Aspekte beitragen
</p>
<ul>
<li>
der Node-Name
</li>
<li>
Funktion und Spec f&#252;r einen Port
</li>
</ul>
<p>
...dagegen andere Aspekte m&#252;ssen frei bleiben
</p>
<ul>
<li>
Verdrahtung der Vorg&#228;nger-Nodes f&#252;r diesen Port
</li>
<li>
ggs andere Ports
</li>
</ul>
</body>
</html>
</richcontent>
</node>
<node CREATED="1739138924536" ID="ID_546266242" MODIFIED="1739138928356" TEXT="Ans&#xe4;tze">
<node CREATED="1739138930667" ID="ID_195321683" MODIFIED="1739139000291" TEXT="f&#xfc;r einfache F&#xe4;lle doch ein point-and-shot">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...vor allem f&#252;r Src-Nodes k&#246;nnte die TestRand-Ontology gleich eine fertige ProcNode liefern....
</p>
<p>
Problem damit
</p>
<ul>
<li>
dann mu&#223; TestRand etwas &#252;ber ProcNode wissen
</li>
</ul>
</body>
</html>
</richcontent>
<node CREATED="1739140280801" ID="ID_1585591460" MODIFIED="1739140297955" TEXT="vielleicht sogar nur hier f&#xfc;r diesen Tescht"/>
</node>
<node CREATED="1739139021078" ID="ID_1083234628" MODIFIED="1739139075629" TEXT="der Spec-Builder hat generische Funktion, die auf einen NodeBuilder losgeht"/>
<node CREATED="1739139083579" ID="ID_1865338853" MODIFIED="1739139122322" TEXT="der Node-Builder hat generische Funktion, die visitor-m&#xe4;&#xdf;ig einen &#xbb;configurator&#xab; akzeptiert"/>
<node CREATED="1739139147065" ID="ID_1683401888" MODIFIED="1739139180912" TEXT="oder gar nicht und auf sp&#xe4;ter vertagen...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wie viele F&#228;lle sind das jetzt tats&#228;chlich
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728785502988" ID="ID_1772786102" MODIFIED="1739116146953" TEXT="Prototyping-2">
@ -105023,8 +105109,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1739116807329" ID="ID_9254864" MODIFIED="1739116818614" TEXT="zus&#xe4;tzliche Test-Node-Builder anlegen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739116482304" ID="ID_551457644" MODIFIED="1739116830133" TEXT="Test-Nodes f&#xfc;r typische Berechnungen aufbauen">
<linktarget COLOR="#aa1b54" DESTINATION="ID_551457644" ENDARROW="Default" ENDINCLINATION="799;-53;" ID="Arrow_ID_1372658878" SOURCE="ID_770787154" STARTARROW="None" STARTINCLINATION="225;13;"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739116482304" ID="ID_551457644" MODIFIED="1739137044074" TEXT="Test-Nodes f&#xfc;r typische Berechnungen aufbauen">
<linktarget COLOR="#aa1b54" DESTINATION="ID_551457644" ENDARROW="Default" ENDINCLINATION="799;-53;" ID="Arrow_ID_1372658878" SOURCE="ID_770787154" STARTARROW="None" STARTINCLINATION="374;22;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1739118437462" ID="ID_548813842" MODIFIED="1739118441696" TEXT="Quelle">
<icon BUILTIN="button_ok"/>
@ -107516,7 +107602,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<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">
<arrowlink COLOR="#2c80c0" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="139;11;" ID="Arrow_ID_723151145" STARTARROW="None" STARTINCLINATION="-985;-614;"/>
<arrowlink COLOR="#2c80c0" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="1749;97;" ID="Arrow_ID_723151145" STARTARROW="None" STARTINCLINATION="-985;-614;"/>
<icon BUILTIN="pencil"/>
</node>
</node>