\begin{vdm_al} ------------------------------------------------ -- Class: TestVeMoController -- Description: Test the VeMoController class -----------------------------------------------
-- -- class definition -- class TestVeMoController issubclassof TestCase
private runner : () ==> ()
runner () ==
( dcl vec : Vehicle := new Vehicle(2, pos, 1, <NORTH>),
vec2 : Vehicle := new Vehicle(3, new Position(1,3), 1, <SOUTH>),
ctrl : Controller := new Controller(vec),
ctrl2 : Controller := new Controller(vec2),
vec3 : Vehicle := new Vehicle(4, new Position(1,3), 1, <EAST>),
vemoCtrl : VeMoController := new VeMoController(),
trfLight : TrafficLight := new TrafficLight(11, new Position(1,3), 5);
--test call of inrange and data exchange
vec.setLowGrip(true);
vemoCtrl.addController(ctrl);
vemoCtrl.addController(ctrl2);
AssertTrue(vemoCtrl.getController(2) = ctrl);
start(vemoCtrl); --start(ctrl);
vemoCtrl.CalculateInRange(); let vs = ctrl.GetTrafficData() in
( skip; let v = vs(1) in
(
AssertTrue(v.GetPosition().X() = 1);
AssertTrue(v.GetPosition().Y() = 2);
AssertTrue(v.GetMessage() = <LowGrip>);
AssertTrue(v.GetDirection() = <NORTH>);
)
);
--test opposite direction
AssertTrue(VeMoController`OppositeDirection(vec3.GetDirection()) = <WEST>);
vec3.SetDirection(<WEST>);
AssertTrue(VeMoController`OppositeDirection(vec3.GetDirection()) = <EAST>);
-- test trafficlight
vemoCtrl.addTrafficLight(trfLight); let t = vemoCtrl.getTrafficLight(11) in
(
AssertTrue(t.GetID() = 11);
AssertTrue(Position`Compare(t.GetPosition(), new Position(1,3)));
)
);
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.10Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.