RobWorkProject
23.9.11-
|
Generic test type for physics engines, which provides a factory for standard tests along with an extension point for user defined tests. More...
#include <EngineTest.hpp>
Inherited by IntegratorTest.
Classes | |
struct | EngineLoopInfo |
The info passed in a callback function. More... | |
class | Factory |
A factory for engine tests. This factory also defines an ExtensionPoint. More... | |
struct | Failure |
Format for a failure to an engine test. More... | |
struct | Result |
A result of an engine test. Each test can return multiple results. More... | |
class | TestHandle |
Handle for a concrete test run, which makes it possible to interact with the test during simulation. More... | |
Public Types | |
typedef rw::core::Ptr< EngineTest > | Ptr |
Smart pointer to EngineTest. | |
typedef std::function< void(double time, bool failed, bool done)> | TimeCallback |
The callback type for the current simulation time. | |
Public Member Functions | |
EngineTest () | |
Construct new test. | |
virtual | ~EngineTest () |
Destructor. | |
virtual bool | isEngineSupported (const std::string &engineID) const =0 |
Check if engine with specific name is supported by the test. More... | |
virtual TestHandle::Ptr | runThread (const std::string &engineID, const rw::core::PropertyMap ¶meters, rw::core::Ptr< rwsim::log::SimulatorLogScope > verbose, rw::core::Ptr< rw::common::ThreadTask > task) |
Run the test in a separate thread. More... | |
virtual void | run (TestHandle::Ptr handle, const std::string &engineID, const rw::core::PropertyMap ¶meters, rw::core::Ptr< rwsim::log::SimulatorLogScope > verbose=NULL)=0 |
Run the test. More... | |
virtual double | getRunTime () const =0 |
Get the length of the simulation. More... | |
virtual rw::core::Ptr< rwsim::dynamics::DynamicWorkCell > | getDWC (const rw::core::PropertyMap &map)=0 |
Get the dynamic workcell used by the test. More... | |
virtual rw::core::Ptr< rw::core::PropertyMap > | getDefaultParameters () const |
Get the default parameters used by the test. More... | |
virtual std::vector< rw::core::Ptr< rw::core::PropertyMap > > | getPredefinedParameters () const |
Get a vector of predefined parameters. More... | |
Protected Types | |
typedef std::function< void(rw::core::Ptr< const rwsim::dynamics::DynamicWorkCell >, rw::kinematics::State &)> | InitCallback |
Type for a function initializing the state. | |
typedef std::function< void(const EngineLoopInfo &)> | TestCallback |
Type for a callback function. | |
Protected Member Functions | |
void | runEngineLoop (double dt, TestHandle::Ptr handle, const std::string &engineID, const rw::core::PropertyMap ¶meters, rw::core::Ptr< rwsim::log::SimulatorLogScope > verbose, TestCallback callback=0, InitCallback initialize=0) |
A standard stepping loop provided as a convenience for test implementations. More... | |
Generic test type for physics engines, which provides a factory for standard tests along with an extension point for user defined tests.
|
virtual |
Get the default parameters used by the test.
Reimplemented in IntegratorTest.
|
pure virtual |
Get the dynamic workcell used by the test.
map | [in] properties for test workcell. |
Implemented in IntegratorTest.
|
virtual |
Get a vector of predefined parameters.
|
pure virtual |
Get the length of the simulation.
Implemented in IntegratorSpringTest, IntegratorRotationTest, and IntegratorGravityTest.
|
pure virtual |
Check if engine with specific name is supported by the test.
engineID | [in] the id of the engine. |
Implemented in IntegratorTest.
|
pure virtual |
Run the test.
handle | [in/out] a TestHandle where the results of the test will be added to. |
engineID | [in] the id of the engine to run test for. |
parameters | [in] the parameters for the test run. |
verbose | [in] (optional) record detailed internal debug information in the engine during simulation. |
|
protected |
A standard stepping loop provided as a convenience for test implementations.
dt | [in] the time step to use. |
handle | [in/out] a TestHandle where the results of the test will be added to. |
engineID | [in] the id of the engine to run test for. |
parameters | [in] the parameters for the test run. |
verbose | [in] record detailed internal debug information in the engine during simulation. |
callback | [in] (optional) call a function after each step of the simulation. |
initialize | [in] (optional) call a function that sets the initial state. |
|
virtual |
Run the test in a separate thread.
engineID | [in] the id of the engine to run test for. |
parameters | [in] the parameters for the test run. |
verbose | [in] record detailed internal debug information in the engine during simulation. |
task | [in] the task to add simulation work to. |