Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Implementation of fake data processing to verify invocation logic.
The emulated »media computations« work on TestFrame data buffers, which can be filled with deterministically generated pseudo-random data, that can be verified afterwards. Computations manipulate or combine individual data points, and mark the result again with a valid checksum. Hash-chaining computations are used in order to ensure that the resulting data values depend on all input- and parameter values, and the exact order of processing. All computations are reproducible, and thus a test can verify a computation carried out within the context of the Render-Engine code.
Definition in file test-rand-ontology.cpp.
#include "steam/engine/test-rand-ontology.hpp"
#include "lib/hash-combine.hpp"
#include "lib/iter-zip.hpp"
#include <cmath>
Functions | |
void | combineFrames (TestFrame *out, TestFrame const *srcA, TestFrame const *srcB, double mix) |
mix two random data frames by a parameter-controlled proportion More... | |
void | duplicateMultichan (TestFrame *outArry, TestFrame *inArry, uint chanCnt) |
create an identical clone copy of the planar multi channel frame array More... | |
void | generateFrame (TestFrame *buff, size_t frameNr=0, uint flavour=0) |
produce sequences of frames with (reproducible) random data More... | |
void | generateMultichan (TestFrame *buffArry, uint chanCnt, size_t frameNr=0, uint flavour=0) |
produce planar multi channel output of random data frames More... | |
void | manipulateFrame (TestFrame *out, TestFrame const *in, uint64_t param) |
»process« random frame date by hash-chaining with a parameter. More... | |
void | manipulateMultichan (TestFrame *buffArry, uint chanCnt, uint64_t param) |
»process« a planar multi channel array of data frames in-place. More... | |
Variables | |
const string | DUMMY_FUN_ID {"dummyFun(TestFrame)"} |
lib::Depend< TestRandOntology > | testRand |
Storage for the Singleton-Accessor/Factory. More... | |
Namespaces | |
steam | |
Steam-Layer implementation namespace root. | |
steam::engine | |
Lumiera's render engine core and operational control. | |
void generateFrame | ( | TestFrame * | buff, |
size_t | frameNr, | ||
uint | flavour | ||
) |
produce sequences of frames with (reproducible) random data
buff | a sufficiently sized allocation to place the result data into |
frameNr | the frame of the »source feed« to generate (determines actual random data) |
flavour | a further seed parameter to determine the actual (reproducibly) random data |
Definition at line 56 of file test-rand-ontology.cpp.
References steam::engine::test::generateFrame().
Referenced by steam::engine::test::generateFrame(), and NodeDevel_test::processing_generateFrame().
void generateMultichan | ( | TestFrame * | buffArry, |
uint | chanCnt, | ||
size_t | frameNr, | ||
uint | flavour | ||
) |
produce planar multi channel output of random data frames
chanCnt | size of the array of frames to generate |
buffArry | pointer to an allocation sufficiently sized to hold TestFrame[chanCnt] |
frameNr | the frame of the »source feed« to use commonly on all those frames in the output |
flavour | a further seed parameter used as starting offest for the output's family parameters |
frameNr
and consecutive family
parameters, which will be offset commonly by adding the flavour parameter. Definition at line 73 of file test-rand-ontology.cpp.
References steam::engine::test::generateMultichan().
Referenced by steam::engine::test::generateMultichan(), NodeDevel_test::processing_duplicateMultichan(), NodeDevel_test::processing_generateMultichan(), and NodeDevel_test::processing_manipulateMultichan().
create an identical clone copy of the planar multi channel frame array
chanCnt | size of the array of frames to clone |
inArry | pointer to storage holding a TestFrame[chanCnt] |
outArry | pointer to allocated storage sufficient to hold a clone copy of these |
Definition at line 86 of file test-rand-ontology.cpp.
References steam::engine::test::duplicateMultichan().
Referenced by steam::engine::test::duplicateMultichan(), NodeDevel_test::processing_duplicateMultichan(), and NodeDevel_test::processing_manipulateMultichan().
void manipulateMultichan | ( | TestFrame * | buffArry, |
uint | chanCnt, | ||
uint64_t | param | ||
) |
»process« a planar multi channel array of data frames in-place.
chanCnt | size of the array of frames to manipulate |
buffArry | pointer to an array of several frames (channels) |
param | parameter to control or »mark« the data manipulation (hash-combining) |
Definition at line 103 of file test-rand-ontology.cpp.
References lib::hash::combine(), and steam::engine::test::manipulateMultichan().
Referenced by steam::engine::test::manipulateMultichan(), and NodeDevel_test::processing_manipulateMultichan().
»process« random frame date by hash-chaining with a parameter.
out | existing allocation to place the generated TestFrame into |
in | allocation holding the input TestFrame data |
param | parameter to control or »mark« the data manipulation (hash-combining) |
Definition at line 129 of file test-rand-ontology.cpp.
References lib::hash::combine(), steam::engine::test::manipulateFrame(), TestFrame::markChecksum(), and lib::zip().
Referenced by steam::engine::test::manipulateFrame(), and NodeDevel_test::processing_manipulateFrame().
mix two random data frames by a parameter-controlled proportion
out | existing allocation to receive the calculated result TestFrame |
srcA | a buffer holding the input data for feed-A |
srcB | a buffer holding the input data for feed-B |
mix | degree of mixing (by integer arithmetics): 100 means 100% feed-B |
Definition at line 148 of file test-rand-ontology.cpp.
References steam::engine::test::combineFrames(), TestFrame::data(), TestFrame::markChecksum(), and lib::zip().
Referenced by steam::engine::test::combineFrames(), and NodeDevel_test::processing_combineFrames().
lib::Depend< TestRandOntology > testRand |
Storage for the Singleton-Accessor/Factory.
Singleton accessor.
Definition at line 165 of file test-rand-ontology.cpp.
Referenced by NodeDevel_test::testRand_simpleUsage().