Invocation: switch TestFrame data generation to the new random framework
Based on the recent work it is now possible to generate reproducible yet randomly distributed data content. A new `TestFrame::reseed()` operation is introduced, which attaches to the `lib::defaultGen` Using the linear-congruential engine for the actual data generation.
This commit is contained in:
parent
806db414dd
commit
4ca9eb8d46
4 changed files with 291 additions and 92 deletions
|
|
@ -190,7 +190,7 @@ namespace test {
|
|||
CHECK ( testData(3,51).isSane());
|
||||
CHECK ( testData(3,49).isSane());
|
||||
|
||||
resetTestFrames();
|
||||
TestFrame::reseed();
|
||||
|
||||
CHECK ( testData(3,50).isSane());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,9 +19,10 @@
|
|||
#include "lib/error.hpp"
|
||||
#include "lib/random.hpp"
|
||||
#include "steam/engine/testframe.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
#include <boost/random/linear_congruential.hpp>
|
||||
|
||||
#include <climits>
|
||||
#include <cstring>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
|
@ -32,33 +33,78 @@ namespace steam {
|
|||
namespace engine {
|
||||
namespace test {
|
||||
|
||||
using lib::HashVal;
|
||||
using std::vector;
|
||||
using std::memcpy;
|
||||
using lib::rani;
|
||||
|
||||
typedef boost::rand48 PseudoRandom;
|
||||
/** @note using a random-congruential engine to generate the payload data */
|
||||
using PseudoRandom = lib::RandomSequencer<std::minstd_rand>;
|
||||
|
||||
|
||||
namespace error = lumiera::error;
|
||||
|
||||
namespace { // hidden local support facilities....
|
||||
|
||||
/**
|
||||
* Offset to set the seed values of »families« apart.
|
||||
* The data in the test frames is generated from a distinctive ID-seed,
|
||||
* which is controlled by the _family_ and the _seq-No_ within each family.
|
||||
* The seeds for consecutive frames are spread apart by the #dataSeed,
|
||||
* and the SEQUENCE_SPREAD constant acts as minimum spread. While seed
|
||||
* values can wrap within the 64bit number range, this generation scheme
|
||||
* makes it very unlikely that neighbouring frames end up with the same seed.
|
||||
*/
|
||||
const size_t SEQUENCE_SPREAD = 100;
|
||||
|
||||
HashVal
|
||||
drawSeed (lib::Random& srcGen)
|
||||
{
|
||||
return srcGen.distribute(
|
||||
std::uniform_int_distribution<HashVal>{SEQUENCE_SPREAD
|
||||
,std::numeric_limits<HashVal>::max()-SEQUENCE_SPREAD});
|
||||
}
|
||||
|
||||
/** @internal a static seed hash used to anchor the data distinction ID-seeds */
|
||||
HashVal dataSeed{drawSeed(lib::entropyGen)};
|
||||
|
||||
/** @internal helper for generating unique test frames.
|
||||
* This "discriminator" is used as a random seed when
|
||||
* filling the test frame data buffers. It is generated
|
||||
* to be different on adjacent frames of the same series,
|
||||
* as well as to differ to all near by neighbouring channels.
|
||||
* This "discriminator" is used as a random seed when filling the test frame data buffers.
|
||||
* It is generated to be very likely different on adjacent frames of the same series,
|
||||
* as well as to differ to all nearby neighbouring channels.
|
||||
* @param seq the sequence number of the frame within the channel
|
||||
* @param family the channel this frame belongs to
|
||||
*/
|
||||
uint64_t
|
||||
generateDistinction(uint seq, uint family)
|
||||
{
|
||||
// random offset, but fixed per executable run
|
||||
static uint base(10 + rani(990)); /////////////////////////////////////////////////////////////////////TICKET #1372 this is not reproducible!!
|
||||
|
||||
// use the family as stepping
|
||||
return (seq+1) * (base+family);
|
||||
return (seq+1) * (dataSeed+family);
|
||||
}
|
||||
|
||||
class DistinctNucleus
|
||||
: public lib::SeedNucleus
|
||||
, util::MoveOnly
|
||||
{
|
||||
uint64_t const& fixPoint_;
|
||||
public:
|
||||
DistinctNucleus(uint64_t const& anchor)
|
||||
: fixPoint_{anchor}
|
||||
{ }
|
||||
|
||||
uint64_t
|
||||
getSeed() override
|
||||
{
|
||||
return fixPoint_;
|
||||
}
|
||||
};
|
||||
|
||||
/** @internal build a PRNG starting from the referred fixed seed */
|
||||
auto
|
||||
buildDataGenFrom (uint64_t const& anchor)
|
||||
{
|
||||
DistinctNucleus seed{anchor};
|
||||
return PseudoRandom{seed};
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -155,11 +201,23 @@ namespace test {
|
|||
{
|
||||
return accessTestFrame (seqNr,chanNr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @remark this function should be invoked at the start of any test
|
||||
* which requires reproducible data values in the TestFrame.
|
||||
* It generates a new base seed to distinguish individual data frames.
|
||||
* The seed is drawn from the \ref lib::defaultGen, and thus will be
|
||||
* reproducible if the latter has been reseeded beforehand.
|
||||
* @warning after invoking reseed(), the validity of previously generated
|
||||
* frames can no longer be verified.
|
||||
*/
|
||||
void
|
||||
resetTestFrames()
|
||||
TestFrame::reseed()
|
||||
{
|
||||
testFrames.reset(0);
|
||||
testFrames.reset();
|
||||
drawSeed (lib::defaultGen);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -194,7 +252,7 @@ namespace test {
|
|||
{
|
||||
if (DISCARDED == stage_)
|
||||
throw new error::Logic ("target TestFrame is already dead");
|
||||
if (this != &o)
|
||||
if (not util::isSameAdr (this, o))
|
||||
{
|
||||
distinction_ = o.distinction_;
|
||||
stage_ = CREATED;
|
||||
|
|
@ -246,9 +304,9 @@ namespace test {
|
|||
bool
|
||||
TestFrame::verifyData() const
|
||||
{
|
||||
PseudoRandom gen(distinction_);
|
||||
auto gen = buildDataGenFrom (distinction_);
|
||||
for (uint i=0; i<BUFFSIZ; ++i)
|
||||
if (data()[i] != char(gen() % CHAR_MAX))
|
||||
if (data()[i] != char(gen.i(CHAR_MAX)))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
|
@ -256,9 +314,9 @@ namespace test {
|
|||
void
|
||||
TestFrame::buildData()
|
||||
{
|
||||
PseudoRandom gen(distinction_);
|
||||
auto gen = buildDataGenFrom (distinction_);
|
||||
for (uint i=0; i<BUFFSIZ; ++i)
|
||||
data()[i] = char(gen() % CHAR_MAX);
|
||||
data()[i] = char(gen.i(CHAR_MAX));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
|
||||
#include "lib/integral.hpp"
|
||||
#include "lib/hash-value.h"
|
||||
|
||||
#include <array>
|
||||
|
||||
|
|
@ -66,6 +67,9 @@ namespace test {
|
|||
std::byte buffer_[sizeof(_Arr)];
|
||||
|
||||
public:
|
||||
/** discard all cached #testData and recalibrate data generation */
|
||||
static void reseed();
|
||||
|
||||
~TestFrame();
|
||||
TestFrame (uint seq=0, uint family=0);
|
||||
TestFrame (TestFrame const&);
|
||||
|
|
@ -114,11 +118,6 @@ namespace test {
|
|||
TestFrame& testData (uint chanNr, uint seqNr);
|
||||
|
||||
|
||||
/** discards all the TestFrame instances and
|
||||
* initialises an empty table of test frames */
|
||||
void resetTestFrames();
|
||||
|
||||
|
||||
|
||||
}}} // namespace steam::engine::test
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -17563,9 +17563,7 @@
|
|||
</node>
|
||||
<node CREATED="1541088402105" ID="ID_857510555" MODIFIED="1576282358101" TEXT="feste Längenvorgabe">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
d.h. das Text-Label bekommt ggfs. eine Längenbeschränkung.
|
||||
|
|
@ -18015,9 +18013,7 @@
|
|||
<node CREATED="1654447901661" ID="ID_988465077" MODIFIED="1654448124509" TEXT="Kind">
|
||||
<node CREATED="1654447908464" ID="ID_1051744069" MODIFIED="1654447973665" TEXT="MARK">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ein Marker, ein Pin, Position,....
|
||||
|
|
@ -18832,9 +18828,7 @@
|
|||
</node>
|
||||
<node CREATED="1664312522879" ID="ID_568381694" MODIFIED="1664312946309" TEXT="denn der erste Draw erfolgt nach der Zuteilung einer Allokation">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
zwar machen wir im Ctor zuletzt ein show_all(), welches dann erst diese Layout-Berechnung anstößt. Aber zum Zeitpunkt der Allokations-Zuteilung für das Container-Widget (ElementBox selber) haben die nested-children noch keine Allokation bekommen; zwar gelten sie schon als "mapped" und "realized", aber offensichtlich führt eine Änderung des visible()-Status dazu, daß das damit ausgeblendete Kind-Widget schon gleich gar nicht gezeichnet wird
|
||||
|
|
@ -19140,9 +19134,7 @@
|
|||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1664834635582" ID="ID_611375985" MODIFIED="1664834740525">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...weil der Constraint ja <i>gelockert </i>sein könnte
|
||||
|
|
@ -19842,9 +19834,7 @@
|
|||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1661703897467" ID="ID_1062096597" MODIFIED="1661704080771" TEXT="Länge und Fenster-Spec in Timeline-Zeit">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
egal ob nun absolut oder relativ, aber die Lumiera Time-Koordinaten sind gemein. Das ist nicht die »wall clock time«
|
||||
|
|
@ -21177,9 +21167,7 @@
|
|||
</node>
|
||||
<node CREATED="1575220620374" ID="ID_1278909200" MODIFIED="1575220767695" TEXT="genau das hab ich trickreich vermieden">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
durch die Lösung mit dem "Einhäkeln" via temporär durchgereichtem Lambda!
|
||||
|
|
@ -23790,9 +23778,7 @@
|
|||
</node>
|
||||
<node CREATED="1672706942567" ID="ID_525512704" MODIFIED="1672707389514">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...damit würde eine std::function konstruiert,
|
||||
|
|
@ -40081,9 +40067,7 @@
|
|||
<node CREATED="1541860198222" ID="ID_847832000" MODIFIED="1557498707233" TEXT="absolute">
|
||||
<node CREATED="1544126105472" ID="ID_1636490570" MODIFIED="1576282358023" TEXT="relative-absolute">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
a fixed absolute number of tick units,
|
||||
|
|
@ -42417,9 +42401,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
aus praktischen Gründen erfolgt die Rechnung in FSecs, und das ist hier nicht gefährlich, weil der Nenner dieses Wertes in der Metrik-Berechnung nur mit den Pixeln in Berührung kommt
|
||||
|
|
@ -43907,9 +43889,7 @@
|
|||
<node CREATED="1668394096760" ID="ID_1339569720" MODIFIED="1668394109114" TEXT="1000 Durchläufe über dieses Array"/>
|
||||
<node CREATED="1668394109774" ID="ID_552943244" MODIFIED="1668395370694" TEXT="Ergebnis in Akkumulator summiert">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Extrem wichtig. Und auch wichtig: mit diesem Akkumulator nachher noch etwas machen (z.B. ausgeben). Sonst merkt der Compiler daß das kein beobachtbarer Effekt ist, und entfernt die Addition, und dann in einigen Fällen auch den eigentlichen Funktionsaufruf
|
||||
|
|
@ -45842,9 +45822,7 @@
|
|||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1523021679960" ID="ID_1386792927" MODIFIED="1557498707234">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
(GlobalCtx)-><b>InteractionDirector</b> (=Model Root)
|
||||
|
|
@ -46178,9 +46156,7 @@
|
|||
<node CREATED="1664669510416" ID="ID_407846931" MODIFIED="1664669525650" TEXT="da wir nicht ohne Weiteres custom-Widget-Klassen schaffen können"/>
|
||||
<node CREATED="1664669526998" ID="ID_692508044" MODIFIED="1664669597733">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
dann immer besser noch ein: <font face="Monospaced" color="#3006cf">frame#element</font>
|
||||
|
|
@ -46324,9 +46300,7 @@
|
|||
</node>
|
||||
<node CREATED="1448078748448" ID="ID_1000763850" MODIFIED="1576282358015" TEXT="Nachrichten löschen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
mark "clearMsg"
|
||||
|
|
@ -46392,9 +46366,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
was haben alle UI-Elemente wirklich gemeinsam?
|
||||
|
|
@ -56312,7 +56284,8 @@
|
|||
</html></richcontent>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node CREATED="1731845750385" ID="ID_810712062" MODIFIED="1731845774415" TEXT="Abstraktions-Framework">
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1731845750385" FOLDED="true" ID="ID_810712062" MODIFIED="1731888364117" TEXT="Abstraktions-Framework">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1731845775617" ID="ID_1139075257" MODIFIED="1731845790075" TEXT="Basis ist <random>"/>
|
||||
<node CREATED="1731845922430" ID="ID_1112739568" MODIFIED="1731845927401" TEXT="Anforderungen">
|
||||
<node CREATED="1731845928234" ID="ID_625386997" MODIFIED="1731845944583" TEXT="soll den eigentlichen Grenerator einhüllen/verbergen"/>
|
||||
|
|
@ -56815,12 +56788,33 @@
|
|||
</html></richcontent>
|
||||
<arrowlink COLOR="#943e5b" DESTINATION="ID_939285679" ENDARROW="Default" ENDINCLINATION="-1142;-205;" ID="Arrow_ID_1632825391" STARTARROW="None" STARTINCLINATION="1971;131;"/>
|
||||
</node>
|
||||
<node CREATED="1728786907104" ID="ID_142347061" MODIFIED="1728786910403" TEXT="Umbauten">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728786911759" ID="ID_1026206450" MODIFIED="1728787040941" TEXT="Basis-Seed in globale Variable">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728786907104" ID="ID_142347061" MODIFIED="1731900709058" TEXT="Umbauten">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1728786911759" ID="ID_1026206450" MODIFIED="1731900644399" TEXT="Basis-Seed in globale Variable">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1731895116455" ID="ID_1175003078" MODIFIED="1731900549018" TEXT="reseed-Operation">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1731895124870" ID="ID_548107647" MODIFIED="1731895133160" TEXT="muß auch alle bestehenden Testdaten verwerfen"/>
|
||||
<node CREATED="1731895133805" ID="ID_723269136" MODIFIED="1731895164276" TEXT="mit dem Seed ändert sich die distinction_ und damit die korrekten Datenwerte"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1731900530433" ID="ID_1117088425" MODIFIED="1731900545903" TEXT="den Basis-Seed mit einem minimal-Spread aufbauen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1731900560669" ID="ID_553408936" MODIFIED="1731900581648" TEXT="diesen aber ansonsten aus dem default / oder entropy-Generator ziehen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1728786927964" ID="ID_1668223251" MODIFIED="1731900643427" TEXT="PRNG auf std::rand umstellen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1731900504708" ID="ID_1029442698" MODIFIED="1731900521390" TEXT="verwende aber den leichtgewichtigen linear-congruental-PRNG">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1731900601655" ID="ID_1029222798" MODIFIED="1731900615355" TEXT="speziellen SeedNucleus, der die distinction-ID durchreicht">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1731900619383" ID="ID_473149833" MODIFIED="1731900641035" TEXT="muß den Generator jeweils nur für einen Generationslauf erzeugen (Hilfsfunktion)">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728786927964" ID="ID_1668223251" MODIFIED="1728787040942" TEXT="PRNG auf std::rand umstellen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728786946155" ID="ID_1878547941" MODIFIED="1728787040942" TEXT="Datenlayout und Alignment">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -56987,7 +56981,7 @@
|
|||
<node COLOR="#435e98" CREATED="1729979325607" ID="ID_677674501" MODIFIED="1729979344958" TEXT="useFrameTable"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1730904143330" ID="ID_25783469" MODIFIED="1731864866245" TEXT="#1378 controlled random seed for tests">
|
||||
<node COLOR="#338800" CREATED="1730904143330" FOLDED="true" ID="ID_25783469" MODIFIED="1731864866245" TEXT="#1378 controlled random seed for tests">
|
||||
<linktarget COLOR="#1a30c0" DESTINATION="ID_25783469" ENDARROW="Default" ENDINCLINATION="-284;-1132;" ID="Arrow_ID_1665212260" SOURCE="ID_31813522" STARTARROW="None" STARTINCLINATION="-287;22;"/>
|
||||
<linktarget COLOR="#4514c4" DESTINATION="ID_25783469" ENDARROW="Default" ENDINCLINATION="6546;452;" ID="Arrow_ID_1019579428" SOURCE="ID_1500320757" STARTARROW="None" STARTINCLINATION="1769;146;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -57189,7 +57183,7 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1731119762690" ID="ID_1637478235" MODIFIED="1731447189143" TEXT="Zufalls-Generator in lib::test::Test">
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1731119762690" FOLDED="true" ID="ID_1637478235" MODIFIED="1731447189143" TEXT="Zufalls-Generator in lib::test::Test">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1731119858173" ID="ID_1447736454" MODIFIED="1731119870919" TEXT="verwendet einen eingebetteten SeedNucleus"/>
|
||||
<node COLOR="#5b280f" CREATED="1731120003113" ID="ID_1177767927" MODIFIED="1731176382320" TEXT="jeder Aufruf erzeugt ein neues RandomSequencer-Objekt">
|
||||
|
|
@ -57332,7 +57326,7 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1731424663557" ID="ID_1548490877" MODIFIED="1731864831498" TEXT="std::rand() ersetzen">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node COLOR="#435e98" CREATED="1731424676911" ID="ID_432733421" MODIFIED="1731447182287" TEXT="was wird benötigt?">
|
||||
<node COLOR="#435e98" CREATED="1731424676911" FOLDED="true" ID="ID_432733421" MODIFIED="1731447182287" TEXT="was wird benötigt?">
|
||||
<font NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1731424690509" ID="ID_1222355432" MODIFIED="1731424715317" TEXT="test::randStr()"/>
|
||||
|
|
@ -57393,7 +57387,7 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1731430747958" ID="ID_909943227" MODIFIED="1731430752006" TEXT="Zielvorgabe">
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1731430747958" FOLDED="true" ID="ID_909943227" MODIFIED="1731430752006" TEXT="Zielvorgabe">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1731430755615" ID="ID_1824063380" MODIFIED="1731430926339" TEXT="drop-in-Replacement für Modulo">
|
||||
|
|
@ -57443,7 +57437,7 @@
|
|||
<node COLOR="#338800" CREATED="1731434548714" ID="ID_1401652131" MODIFIED="1731466845015" TEXT="rand() % MAX ablösen in Tests">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#690f14" CREATED="1731466845496" ID="ID_108595980" MODIFIED="1731864819581" TEXT="Tests scheitern nach Umstellung">
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#690f14" CREATED="1731466845496" FOLDED="true" ID="ID_108595980" MODIFIED="1731864819581" TEXT="Tests scheitern nach Umstellung">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node COLOR="#435e98" CREATED="1731466868785" ID="ID_1204988400" MODIFIED="1731516821863" TEXT="Rational_test">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -57751,7 +57745,7 @@
|
|||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1731467207226" ID="ID_977237610" MODIFIED="1731624884569" TEXT="TrackingHeapBlockProvider_test">
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1731467220749" ID="ID_1574698883" MODIFIED="1731624803495" TEXT="ASSERTION">
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1731467220749" FOLDED="true" ID="ID_1574698883" MODIFIED="1731624803495" TEXT="ASSERTION">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -57809,17 +57803,20 @@
|
|||
<node CREATED="1731519949320" ID="ID_240715659" MODIFIED="1731519987357" TEXT="Call-Path: simpleExample() ⟶ provider.releaseBuffer(testBuff)"/>
|
||||
<node CREATED="1731520006047" ID="ID_577977745" MODIFIED="1731520016425" TEXT="Debugger">
|
||||
<node CREATED="1731529842821" ID="ID_304693119" MODIFIED="1731529854030" TEXT="nebenbei bemerkt: TypeHandler verwendet eine identity">
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1731529855307" ID="ID_1862852828" MODIFIED="1731529863928" TEXT="wozu wird die verwendet?">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1731529855307" ID="ID_1862852828" MODIFIED="1731888853878" TEXT="wozu wird die verwendet?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1731529995641" ID="ID_570070738" MODIFIED="1731530005496" TEXT="Aua: für hash_value">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1731529995641" ID="ID_570070738" MODIFIED="1731888858118" TEXT="Aua: für hash_value">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
<node CREATED="1731530923708" ID="ID_1704286619" MODIFIED="1731530935278" TEXT="Problem bestätigt: fließt in die Key-Identity ein"/>
|
||||
<node CREATED="1731530923708" ID="ID_1704286619" MODIFIED="1731888525839" TEXT="Problem bestätigt: fließt in die Key-Identity ein">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1731529864690" ID="ID_1980255586" MODIFIED="1731529881765" TEXT="die baut nur auf dem Typ der Funktoren auf">
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1731529864690" ID="ID_1980255586" MODIFIED="1731888903713" TEXT="die baut nur auf dem Typ der Funktoren auf">
|
||||
<arrowlink COLOR="#db1b5e" DESTINATION="ID_524425117" ENDARROW="Default" ENDINCLINATION="-155;-286;" ID="Arrow_ID_1312365808" STARTARROW="None" STARTINCLINATION="90;249;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1731529882792" ID="ID_206400237" MODIFIED="1731529889643" TEXT="das ist rein-logisch zu wenig"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1731529890448" ID="ID_1813009572" MODIFIED="1731529914846" TEXT="wir bräuchten einen Hash des konkreten Funktors">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1731529890448" ID="ID_1813009572" MODIFIED="1731888517739" TEXT="wir bräuchten einen Hash des konkreten Funktors">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -57999,7 +57996,7 @@
|
|||
<arrowlink COLOR="#73384b" DESTINATION="ID_1574698883" ENDARROW="Default" ENDINCLINATION="-9;41;" ID="Arrow_ID_1250752825" STARTARROW="None" STARTINCLINATION="34;4;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1731455444796" ID="ID_784243083" MODIFIED="1731864793958" TEXT="Concurrent Tests umstellen">
|
||||
<node COLOR="#338800" CREATED="1731455444796" FOLDED="true" ID="ID_784243083" MODIFIED="1731864793958" TEXT="Concurrent Tests umstellen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1731728363475" ID="ID_1473702684" MODIFIED="1731864804416" TEXT="problematisch">
|
||||
<icon BUILTIN="info"/>
|
||||
|
|
@ -90363,6 +90360,111 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1728698877565" ID="ID_211834061" MODIFIED="1728698892557" TEXT="Cache-Provider fällt automatisch auf den MemoryProvider zurück">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1731889300949" ID="ID_1155189828" MODIFIED="1731889310449" TEXT="unklar: Thema Buffer-Typ">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1731888445853" ID="ID_524425117" MODIFIED="1731888903713" TEXT="Buffer-Provider : Inkonsistenzen bzl. TypeHandler-Idenity">
|
||||
<linktarget COLOR="#db1b5e" DESTINATION="ID_524425117" ENDARROW="Default" ENDINCLINATION="-155;-286;" ID="Arrow_ID_1312365808" SOURCE="ID_1980255586" STARTARROW="None" STARTINCLINATION="90;249;"/>
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1731888560357" ID="ID_753867507" MODIFIED="1731888579238" TEXT="es ist eine chained-Hash-ID">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node CREATED="1731888580499" ID="ID_632177828" MODIFIED="1731888598920">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
aber diese baut nur auf dem <b>Typ</b> der Funktoren auf
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<node CREATED="1731888601401" ID="ID_1137017696" MODIFIED="1731888654044" TEXT="das ist zu wenig — Laufzeit-Binding ist relevant"/>
|
||||
<node CREATED="1731888615141" ID="ID_1126512651" MODIFIED="1731890089971" TEXT="speziell Funktions-Pointer könnten zu falschem Aliasing führen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
es könnte passieren, daß wir lediglich die Hash-ID generiern für generische Signaturen wie z.B. size_t(string); alle Funktoren mit dieser Signatur wären dann identisch
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#df0449" DESTINATION="ID_373306612" ENDARROW="Default" ENDINCLINATION="-44;-51;" ID="Arrow_ID_937144137" STARTARROW="None" STARTINCLINATION="151;7;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1731888739152" ID="ID_1688258063" MODIFIED="1731888756900" TEXT="Frage: welche Informationsbasis ist gegeben?">
|
||||
<font NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1731888757919" ID="ID_182408684" MODIFIED="1731888834785">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
eine <b>stabile</b> Charakteriseierung wird benögigt
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...bedeutet: eine Speicher-Adresse könnte bereits zu spezifisch sein....
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1731889931661" ID="ID_1395902368" MODIFIED="1731889940288" TEXT="es geht um zwei Belange">
|
||||
<node CREATED="1731889941660" ID="ID_650277364" MODIFIED="1731889948910" TEXT="der Buffer muß groß genug sein"/>
|
||||
<node CREATED="1731889949959" ID="ID_1771707287" MODIFIED="1731889961215" TEXT="es muß u.U ein passender Inlay-Typ erzeugt werden">
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1731889967768" ID="ID_373306612" MODIFIED="1731890085619" TEXT="hier würde dieses Problem u.U relevant">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
irgendwie binden wir hier einen Handler ein, der »hinten rum« am Lib-Plugin hängt und dafür einen (privaten) Datentyp konstruiert ⟹ <b>diese</b>  Info muß in den Prototyp eingehen
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<linktarget COLOR="#df0449" DESTINATION="ID_373306612" ENDARROW="Default" ENDINCLINATION="-44;-51;" ID="Arrow_ID_937144137" SOURCE="ID_1126512651" STARTARROW="None" STARTINCLINATION="151;7;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1731889562472" ID="ID_1782397614" MODIFIED="1731889575163" TEXT="welche Typ-Information wird benötigt?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1731889584979" ID="ID_966020586" MODIFIED="1731889616225" TEXT="Fest steht: der Aufruf braucht passende Buffer (Allokation)">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1731889618623" ID="ID_768812789" MODIFIED="1731889647842" TEXT="dieser Zusammenhang muß auf Builder-Level-3 geklärt werden">
|
||||
<icon BUILTIN="bell"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1731889660185" ID="ID_1751478781" MODIFIED="1731889709324" TEXT="irgendwo in dem Lib-Plugn gib es eine Assotiation">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node CREATED="1731889686746" ID="ID_5123490" MODIFIED="1731889696552" TEXT="konkreter Buffer-Typ"/>
|
||||
<node CREATED="1731889697236" ID="ID_1573431621" MODIFIED="1731889706151" TEXT="StreamType / ImplType?"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1731890121591" HGAP="46" ID="ID_1319945622" MODIFIED="1731890346832" TEXT="wird relevant in dem Moment wo wir aufrufen wollen...." VSHIFT="-1">
|
||||
<linktarget COLOR="#bb4c6b" DESTINATION="ID_1319945622" ENDARROW="Default" ENDINCLINATION="-663;35;" ID="Arrow_ID_542692149" SOURCE="ID_447051297" STARTARROW="None" STARTINCLINATION="745;112;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238837562" HGAP="148" ID="ID_610272532" MODIFIED="1731890424341" STYLE="bubble" TEXT="ungelöst: Buffer-Typisierung" VSHIFT="44">
|
||||
<edge COLOR="#ff5d00" STYLE="sharp_linear"/>
|
||||
<arrowlink COLOR="#fe512a" DESTINATION="ID_1884956005" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_538032456" STARTARROW="None" STARTINCLINATION="-805;76;"/>
|
||||
<icon BUILTIN="bell"/>
|
||||
<node CREATED="1721239003353" ID="ID_1445103400" MODIFIED="1731889907429" STYLE="fork" TEXT="wer verwaltet diese Info generisch?">
|
||||
<font NAME="SansSerif" SIZE="8"/>
|
||||
</node>
|
||||
<node CREATED="1721239003353" ID="ID_1561511907" MODIFIED="1731889878331" STYLE="fork" TEXT="wie bekommen wir eine passende Allokation?">
|
||||
<font NAME="SansSerif" SIZE="8"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fed3ac" COLOR="#990033" CREATED="1731889726616" ID="ID_1814790289" MODIFIED="1731889761047" TEXT="zu klären: wer instruiert den BufferProvider?">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -90389,7 +90491,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1722385177230" ID="ID_795154055" MODIFIED="1722385231890" TEXT="das LocalTag wird aber nur an einer Stelle (top-Level) gebraucht"/>
|
||||
<node COLOR="#5b280f" CREATED="1722385605151" ID="ID_519028808" MODIFIED="1722470379074" TEXT="Markieren des Output-Slot">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1722389530744" ID="ID_1277418704" MODIFIED="1722389536610" TEXT="zu unterscheiden">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1722389530744" ID="ID_1277418704" MODIFIED="1731889232427" TEXT="zu unterscheiden">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1722389538361" ID="ID_35436842" MODIFIED="1722389799354" TEXT="der resultSlot (auf jeder Ebene)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -90425,7 +90527,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1722391173771" ID="ID_720199848" MODIFIED="1722391182384" TEXT="und das alles für einen einzigen Spezialfall"/>
|
||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1722391186291" ID="ID_93208083" MODIFIED="1722392597788">
|
||||
<node BACKGROUND_COLOR="#e0b94b" COLOR="#b5056f" CREATED="1722391186291" ID="ID_93208083" MODIFIED="1731890294391">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -90455,9 +90557,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1722445400526" ID="ID_270562222" MODIFIED="1722445411968" TEXT="dafür ist nur ein einziger Eingriff in shed() notwendig"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1728653092345" ID="ID_670416401" MODIFIED="1728653095731" TEXT="Fazit">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1728653092345" ID="ID_670416401" MODIFIED="1731889222877" TEXT="Fazit">
|
||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1728653097295" ID="ID_1497905125" MODIFIED="1728653116584" TEXT="der Ausgabepuffer wird direkt über den Aufruf herausgeführt"/>
|
||||
<node CREATED="1728653130694" ID="ID_1242564198" MODIFIED="1728653148596" TEXT="das ganze Konzept des OutputBufferProvider wird damit hinfällig"/>
|
||||
<node COLOR="#5b280f" CREATED="1728653130694" ID="ID_1242564198" MODIFIED="1731889213046" TEXT="das ganze Konzept des OutputBufferProvider wird damit hinfällig">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
<node CREATED="1728653149728" ID="ID_478319632" MODIFIED="1728653219457" TEXT="unabhängig davon bleibt Dependency-Injection notwendig für Cache und Buffer-Service">
|
||||
<arrowlink COLOR="#626f93" DESTINATION="ID_1607895967" ENDARROW="Default" ENDINCLINATION="54;426;" ID="Arrow_ID_1301744172" STARTARROW="None" STARTINCLINATION="720;24;"/>
|
||||
</node>
|
||||
|
|
@ -92162,7 +92268,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1728781231984" ID="ID_283829609" MODIFIED="1728781974281" TEXT="wünschenswert">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728780706437" ID="ID_1189363469" MODIFIED="1728781989516" TEXT="der Runtime-Basis-Seed sollte kontrollierbar sein">
|
||||
<node COLOR="#435e98" CREATED="1728780706437" ID="ID_1189363469" MODIFIED="1731900746368" TEXT="der Runtime-Basis-Seed sollte kontrollierbar sein">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -92174,7 +92280,27 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1731892905040" ID="ID_1699520990" MODIFIED="1731892912937" TEXT="bisher ist der Seed statisch-global"/>
|
||||
<node COLOR="#435e98" CREATED="1731892914045" ID="ID_1339262498" MODIFIED="1731900841736" TEXT="müßte diesen vom Test-Seed her kontrollieren können">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1731900755115" ID="ID_220644730" LINK="#ID_1175003078" MODIFIED="1731900880658" TEXT="implizit gelöst">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1731900760730" ID="ID_1666579021" MODIFIED="1731900803874" TEXT="TestFrame::reseed() - Operation">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
wirft auch den internen Daten-Cache weg und re-seeded den Basis-Hash, auf dem die Distinction-ID dann aufbaut
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1731900805220" ID="ID_1253309363" MODIFIED="1731900819630" TEXT="diese reseed() zieht aus dem defaultGen"/>
|
||||
<node CREATED="1731900821242" ID="ID_1140389439" MODIFIED="1731900831764" TEXT="den kann man somit vorher gezielt seeden"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728781144210" ID="ID_51267004" MODIFIED="1728781989516" TEXT="Standard Generator-Sequenzen auf jeder Stufe sind unabhängig hierarchisch">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -92199,6 +92325,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1731894841452" ID="ID_1246150422" MODIFIED="1731894867857" TEXT="Storage besser als Deque (damit Adressen stabil bleiben)"/>
|
||||
<node CREATED="1728778765874" ID="ID_1342398369" MODIFIED="1728778778502" TEXT="der Metadatenblock sollte am Ende sein"/>
|
||||
<node CREATED="1728778790871" ID="ID_92579679" MODIFIED="1728779021706" TEXT="Metadaten sollten optional sein">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -92298,6 +92425,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1731890664306" ID="ID_127090859" MODIFIED="1731890736163" TEXT="wird schon für erste Tests im Vorgriff benötigt">
|
||||
<arrowlink COLOR="#911932" DESTINATION="ID_442258905" ENDARROW="Default" ENDINCLINATION="-554;-1251;" ID="Arrow_ID_1343565956" STARTARROW="None" STARTINCLINATION="-195;12;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728771355851" ID="ID_1533221865" MODIFIED="1728772550469" TEXT="Berechnungsweg komplett deterministic and pure">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -92654,6 +92785,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="hourglass"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728786069167" ID="ID_1584473368" MODIFIED="1728786088974" TEXT="Aufruf-Pfad durchimplementieren">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1731890254602" ID="ID_447051297" MODIFIED="1731890346832" TEXT="brauche Buffer">
|
||||
<arrowlink COLOR="#bb4c6b" DESTINATION="ID_1319945622" ENDARROW="Default" ENDINCLINATION="-663;35;" ID="Arrow_ID_542692149" STARTARROW="None" STARTINCLINATION="745;112;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728785939337" ID="ID_642847753" MODIFIED="1728785947978" TEXT="einfachste Berechnung direkt verifizieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -92689,12 +92824,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728786359782" ID="ID_525505656" MODIFIED="1728786374933" TEXT="Spec und Seed generieren und verarbeiten">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728786385349" ID="ID_442258905" MODIFIED="1730900564912" TEXT="Umbau TestFrame">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728786385349" ID="ID_442258905" MODIFIED="1731890736163" TEXT="Umbau TestFrame">
|
||||
<arrowlink COLOR="#713558" DESTINATION="ID_257931093" ENDARROW="Default" ENDINCLINATION="-2466;135;" ID="Arrow_ID_121875527" STARTARROW="None" STARTINCLINATION="-2154;-229;"/>
|
||||
<linktarget COLOR="#77313e" DESTINATION="ID_442258905" ENDARROW="Default" ENDINCLINATION="381;-48;" ID="Arrow_ID_1047269362" SOURCE="ID_936086670" STARTARROW="None" STARTINCLINATION="-36;80;"/>
|
||||
<linktarget COLOR="#6f2328" DESTINATION="ID_442258905" ENDARROW="Default" ENDINCLINATION="366;-47;" ID="Arrow_ID_1067356199" SOURCE="ID_683548249" STARTARROW="None" STARTINCLINATION="5;52;"/>
|
||||
<linktarget COLOR="#911932" DESTINATION="ID_442258905" ENDARROW="Default" ENDINCLINATION="-554;-1251;" ID="Arrow_ID_1343565956" SOURCE="ID_127090859" STARTARROW="None" STARTINCLINATION="-195;12;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1730900637026" ID="ID_1500320757" MODIFIED="1731864860121" TEXT="brauche Einfluß auf den PRNG">
|
||||
<node COLOR="#338800" CREATED="1730900637026" ID="ID_1500320757" MODIFIED="1731890421828" TEXT="brauche Einfluß auf den PRNG">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -92704,6 +92840,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#4514c4" DESTINATION="ID_25783469" ENDARROW="Default" ENDINCLINATION="6546;452;" ID="Arrow_ID_1019579428" STARTARROW="None" STARTINCLINATION="1769;146;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#474398" CREATED="1731890427683" HGAP="89" ID="ID_616909963" MODIFIED="1731890459593" TEXT="Seed für Testfälle ⟹ defaultGen verwenden" VSHIFT="10"/>
|
||||
</node>
|
||||
<node CREATED="1730900645921" ID="ID_1469990348" MODIFIED="1730901263434" TEXT="brauche Umstellung des Headers">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -93636,6 +93774,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#fe512a" DESTINATION="ID_635840106" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_902176330" SOURCE="ID_1159160517" STARTARROW="None" STARTINCLINATION="-772;102;"/>
|
||||
<icon BUILTIN="bell"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238814245" ID="ID_1884956005" MODIFIED="1731890424341" TEXT="Aufgabe: Buffer-Typ/Prototyp im Buffer-Provider">
|
||||
<linktarget COLOR="#fe512a" DESTINATION="ID_1884956005" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_538032456" SOURCE="ID_610272532" STARTARROW="None" STARTINCLINATION="-805;76;"/>
|
||||
<icon BUILTIN="bell"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e2caa2" COLOR="#990000" CREATED="1729956600896" ID="ID_1648467568" MODIFIED="1729956915005" STYLE="fork" TEXT="Ergebnis">
|
||||
<edge COLOR="#b14253" STYLE="sharp_linear"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue