47 const uint TABLE_SIZ = 100000;
48 const uint CHUNK_MAX = 8000;
49 const uint WIDTH_MAX = 3;
57 E
const& operator[] (
size_t)
const {
return decoy; }
58 size_t size()
const {
return CHUNK_MAX;}
73 ii(rand() % CHUNK_MAX),
74 oo(rand() % CHUNK_MAX)
77 virtual uint getNrI()
const {
return ii; }
78 virtual uint getNrO()
const {
return oo; }
95 first_behind (
BuffTable const& thisChunk,
const uint nrI)
97 return &thisChunk.inHandle[nrI];
102 not_within(
void* candidate,
void* lower,
void* upper)
104 return (candidate < lower) || (upper <= candidate);
111 return (b.outHandle == lastLevel )
112 && (b.outBuff <= b.inBuff )
113 && (b.outHandle <= b.inHandle)
114 && (b.inBuff == &b.outBuff [num.nrO])
115 && (b.inHandle == &b.outHandle[num.nrO])
116 && (not_within(b.outBuff, b.outHandle, &b.inHandle[num.nrO]))
117 && (not_within(b.inBuff, b.outHandle, &b.inHandle[num.nrO]))
118 && (not_within(b.outHandle, b.outBuff, &b.inBuff[num.nrO]))
119 && (not_within(b.inHandle, b.outBuff, &b.inBuff[num.nrO]))
123 } // (End) internal defs 136 using PSto = std::unique_ptr<BuffTableStorage>;
141 virtual void run(Arg)
149 invocation (0, detect_start_level(*pStorage)); 154 cout <<
"BuffTable chunks allocated: "<<counter<<
"\n";
163 MockSizeRequest numbers;
164 consumed += numbers.getNrI()+numbers.getNrO();
165 if (TABLE_SIZ <= consumed)
170 BuffTableChunk thisChunk (numbers, *pStorage); 171 CHECK (consistencyCheck (thisChunk, numbers, lastLevel));
173 uint nrBranches ( 1 + (rand() % WIDTH_MAX));
175 invocation (consumed, first_behind (thisChunk,numbers.getNrI()));
Interface to the processing nodes and the render nodes network.
Abstraction to access the state of a currently ongoing render/calculation process, as it is tied to the supporting facilities of the vault layer.
Abstraction: Array of const references.
Obsolete, to be rewritten /////TICKET #826 to be allocated on the stack while evaluating a ProcNode::...
Obsolete, to be rewritten /////TICKET #826.
void invocation(uint consumed, void *lastLevel)
recurse down randomly until exhausting storage
Steam-Layer implementation namespace root.
Abstract Base Class for all testcases.
Abstraction interface: array-like access by subscript.
Simple test class runner.
Lumiera error handling (C++ interface).
Handle for a buffer for processing data, abstracting away the actual implementation.
Identification tuple for denoting render nodes unambiguously.
virtual BuffHandle callDown(State &, uint) const
the wiring-dependent part of the node operation.
a "hijacked" WiringDescriptor requesting a random number of inputs and outputs
Obsolete, to be rewritten /////TICKET #826.
Interface: Description of the input and output ports, processing function and predecessor nodes for a...
Interface and Base definition for all Lumiera Exceptions.
just some crap to pass in as ctor argument...