diff --git a/tests/core/steam/engine/node-devel-test.cpp b/tests/core/steam/engine/node-devel-test.cpp index 301f3548c..d51b50c64 100644 --- a/tests/core/steam/engine/node-devel-test.cpp +++ b/tests/core/steam/engine/node-devel-test.cpp @@ -18,6 +18,7 @@ #include "lib/test/run.hpp" #include "lib/hash-combine.hpp" +#include "lib/test/test-helper.hpp" #include "steam/engine/test-rand-ontology.hpp" ///////////TODO #include "lib/test/diagnostic-output.hpp"/////////////////TODO #include "lib/iter-zip.hpp" @@ -76,6 +77,8 @@ namespace test { processing_manipulateMultichan(); processing_manipulateFrame(); processing_combineFrames(); + + testRand_simpleUsage(); } @@ -263,6 +266,19 @@ namespace test { CHECK ( i1Buff->isValid()); CHECK (*i1Buff == *oBuff); // second invocation exactly reproduced data from first invocation } + + + /** @test demonstrate simple usage of test-render setup + * - access the TestRandOntology as singleton + * - create a Spec record + */ + void + testRand_simpleUsage() + { + auto spec = testRand().setupGenerator(); +SHOW_EXPR(spec.PROTO); + CHECK (spec.PROTO == "generate-TestFrame"_expect); + } }; diff --git a/tests/core/steam/engine/test-rand-ontology.cpp b/tests/core/steam/engine/test-rand-ontology.cpp index ae3835d3e..387bbdf0d 100644 --- a/tests/core/steam/engine/test-rand-ontology.cpp +++ b/tests/core/steam/engine/test-rand-ontology.cpp @@ -159,5 +159,11 @@ namespace test { + /* =========== Test-Rand-Ontology ================ */ + + /** Storage for the Singleton-Accessor/Factory */ + lib::Depend testRand; + + }}} // namespace steam::engine::test diff --git a/tests/core/steam/engine/test-rand-ontology.hpp b/tests/core/steam/engine/test-rand-ontology.hpp index 254ad0cd7..1993d0935 100644 --- a/tests/core/steam/engine/test-rand-ontology.hpp +++ b/tests/core/steam/engine/test-rand-ontology.hpp @@ -21,7 +21,10 @@ #include "lib/error.hpp" +#include "lib/symbol.hpp" #include "lib/depend.hpp" +#include "lib/nocopy.hpp" +#include "lib/format-string.hpp" #include "steam/engine/testframe.hpp" #include @@ -33,6 +36,8 @@ namespace engine{ namespace test { using std::string; + using lib::Literal; + using util::_Fmt; /** produce sequences of frames with (reproducible) random data */ void generateFrame (TestFrame* buff, size_t frameNr =0, uint flavour =0); @@ -81,15 +86,37 @@ namespace test { { public: + struct Spec; + ~TestRandOntology() = default; TestRandOntology() = default; + Spec setupGenerator (string qual =""); private: }; + struct TestRandOntology::Spec + : util::Cloneable + { + const string PROTO; + + Spec (Literal kind + ,Literal type + ) + : PROTO{_Fmt{"%s-%s"} % kind % type} + { } + }; - /** */ + inline TestRandOntology::Spec + TestRandOntology::setupGenerator (string qual) + { + Spec spec{"generate","TestFrame"}; + return spec; + } + + /** Singleton accessor */ + extern lib::Depend testRand; diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index f32f4c743..8e12e2634 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -20281,9 +20281,7 @@ - - - +

sets für eine feste session::Timeline @@ -20689,9 +20687,7 @@ - - - +

d.h. das durch dieses ViewHooked eingefügte Element definiert auch ein lokales Koordinatensystem. @@ -21099,9 +21095,7 @@ - - - +

nämlich der Vater-TrackBody @@ -21806,9 +21800,7 @@ - - - +

es gibt keinen prinzipiellen Grund, warum sie scheitern könnte @@ -22937,9 +22929,7 @@ - - - +

funktioniert fast immer @@ -24678,9 +24668,7 @@ - - - +

insofern fällt die doppelte Abstraktion und indirektion hier weg @@ -28420,9 +28408,7 @@ - - - +

ich weiß einfach nicht, unter welchen Umständen dann doch mal ein anderer Faktor als 1.0 im gegebenen CairoContext vorliegt; und wenn das dann passiert, wäre das ein ziemlich obskures Fehlverhalten und man wird dann nicht ohne Weiteres die richtige Stelle finden, um diesen Korrekturfaktor einzubringen... @@ -34833,9 +34819,7 @@ - - - +

das lokale Element muß nur als View fungieren @@ -38925,9 +38909,7 @@ - - - +

Stand: funktioniert ― ist aber halbfertig @@ -40464,9 +40446,7 @@ - - - +

Zoom-Metrik verwendet integer-Brüche @@ -41124,9 +41104,7 @@ - - - +

läßt sich ein »unbeherrschbarer Summand« konstruieren @@ -41925,9 +41903,7 @@ - - - +

und zwar dann, wenn auch noch die Window-Parameter extrem sind — dann sieht die Lage ziemlich hoffnungslos aus @@ -42232,9 +42208,7 @@ - - - +

sofern wir überhaupt relevant große Zeitspannen zulassen wollen @@ -42494,9 +42468,7 @@ - - - +

und redundant: macht nicht conformWindowToMetric()  inzwischen genau dassselbe?? @@ -87664,6 +87636,33 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
+ + + + + + + +

+ ...mit der man im Test sagen kann +

+
    +
  • + ich möchte diese Art von Processing +
  • +
  • + mit diesen Datentypen +
  • +
  • + und diesen Varianten / Qualifiern +
  • +
+ + +
+
+ +
@@ -89066,7 +89065,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- +
@@ -93435,8 +93434,20 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
⟹ als nächstes muß aus aus den Manipulationen eine richtige Funktion gemacht werden

- - + + + + + + + + + + + + + +
@@ -93457,13 +93468,25 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- + + + + + + + + + + + + + @@ -93522,7 +93545,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- + @@ -93696,8 +93719,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
Stelle eine Hash-Kette her, die jeweils „quer“ über die Datenpunkte in benachbarten Frames läuft. Ein »param«-Wert dient als Seed und könnte später vom Node-Hash genommen werden. Dann wird der jeweilige original-Datenwert eingehasht und durch das Ergebnis der Kette ersetzt.

- - +
@@ -93714,8 +93736,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- + + + + + + + + + + + @@ -93754,6 +93786,74 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
+ + + + +

+ Leit-Aufrabe für die »Test-Ontology« +

+

+ ⟹ Generator-Funktion bauen ⟸ +

+ +
+ + + + + + + + + + + + + + + + + + + + + +

+ dann würd ich's halt nicht machen..... +

+

+ Jetzt mal ehrlich: auch eine Library kann korrumpierten internen State haben — und man sorgt eben dafür, daß das möglichst nicht passieren kann, indem man defensiv vorgeht. +

+

+ +

+

+ Schlußfolgerung ⟹ alle spezielle Test-Konfiguration gehört dann eben in Spec-Instanzen +

+ +
+
+ + + + + + + + + + + + + + + + + + + + @@ -93898,7 +93998,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- + @@ -94024,7 +94124,28 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- + + + + + +

+ das ist dann aber die NodeSpec +

+ +
+ + + +

+ nicht das reine NodeSymbol +

+ + +
+
+ +