Lumiera  0.pre.03
»edit your freedom«
JobPlanningPipeline_test Class Reference

Description

Test:
demonstrate interface, structure and setup of the job-planning pipeline.
  • using a frame step as base tick
  • invoke the dispatcher to retrieve the top-level JobTicket
  • expander function to explore prerequisite JobTickets
  • integration: generate a complete sequence of (dummy)Jobs
  • scaffolding and mocking used for this test
    Remarks
    the »pipeline« is implemented as »Lumiera Forward Iterator« and thus forms a chain of on-demand processing. At the output side, fully defined render Jobs can be retrieved, ready for scheduling.
    See also
    DispatcherInterface_test
    MockSupport_test
    Dispatcher
    CalcStream
    RenderDriveS

Definition at line 80 of file job-planning-pipeline-test.cpp.

Private Member Functions

void accessTopLevelJobTicket ()
 
void buildBaseTickGenerator ()
 
void demonstrateScaffolding ()
 
void exploreJobTickets ()
 
void integration ()
 
virtual void run (Arg)
 

Additional Inherited Members

- Public Member Functions inherited from Test
virtual ~Test ()=default
 this is an interface
 
lib::Random makeRandGen ()
 build a dedicated new RandomGen, seeded from the default-Gen
 
virtual void run (Arg arg)=0
 
void seedRand ()
 draw a new random seed from a common nucleus, and re-seed the default-Gen.
 
- Static Public Member Functions inherited from Test
static string firstTok (Arg)
 conveniently pick the first token from the argument line
 
static uint firstVal (Arg, uint=1)
 conveniently use some number given as argument, with optional default
 

Member Function Documentation

◆ demonstrateScaffolding()

void demonstrateScaffolding ( )
inlineprivate
Test:
document and verify the mock setup used for this test

Definition at line 97 of file job-planning-pipeline-test.cpp.

References lib::rani().

+ Here is the call graph for this function:

◆ buildBaseTickGenerator()

void buildBaseTickGenerator ( )
inlineprivate
Test:
use the Dispatcher interface (mocked) to generate a frame »beat«
  • demonstrate explicitly the mapping of a (frame) number sequence onto a sequence of time points with the help of time quantisation
  • use the Dispatcher API to produce the same frame time sequence
Remarks
this is the foundation to generate top-level frame render jobs

Definition at line 152 of file job-planning-pipeline-test.cpp.

◆ accessTopLevelJobTicket()

void accessTopLevelJobTicket ( )
inlineprivate
Test:
use the base tick to access the corresponding JobTicket through the Dispatcher interface (mocked here).

Definition at line 181 of file job-planning-pipeline-test.cpp.

References Dispatcher::forCalcStream(), MockDispatcher::getDummyConnection(), and FrameRate::PAL.

+ Here is the call graph for this function:

◆ exploreJobTickets()

void exploreJobTickets ( )
inlineprivate
Test:
build and verify the exploration function to discover job prerequisites
  • use a setup where the master ExitNode requires a prerequisite ExitNode to be pulled
  • mark the pipeline-IDs, so that both nodes can be distinguished in the resulting Jobs
  • the expandPrerequisites() builder function uses JobTicket::getPrerequisites()
  • and this »expander« function is unfolded recursively such that first the source appears in the iterator, and as next step the child prerequisites, possibly to be unfolded further recursively
  • by design of the iterator pipeline, it is always possible to access the PipeFrameTick
  • this corresponds to the top-level JobTicket, which will produce the final frame
  • putting all these information together, proper working can be visualised.

Definition at line 212 of file job-planning-pipeline-test.cpp.

◆ integration()

void integration ( )
inlineprivate
Test:
Job-planning pipeline integration test
  • use the MockDispatcher to define a fake model setup
  • define three levels of prerequisites
  • also define a second segment with different structure
  • build a complete Job-Planning pipeline
  • define a visualisation to expose generated job parameters
  • iterate the Job-Planning pipeline and apply the visualisation

Definition at line 259 of file job-planning-pipeline-test.cpp.

+ Inheritance diagram for JobPlanningPipeline_test:
+ Collaboration diagram for JobPlanningPipeline_test:

The documentation for this class was generated from the following file: