SSL TestController.vdmrt
Interaktion und PortierbarkeitVDM
\section{Test of Controller}
\begin{vdm_al} ------------------------------------------------ -- Class: TestController -- Description: Test the Controller class -----------------------------------------------
-- -- class definition -- class TestController issubclassof TestCase
--test get traffic data
vec.setLowGrip(true);
vec.setTurnIndicator(<LEFT>);
ctrl.Step(); let vs = ctrl.GetTrafficData() in
( let v = vs(1) in
(
AssertTrue(v.GetPosition().X() = 1);
AssertTrue(v.GetPosition().Y() = 2);
AssertTrue(v.GetMessage() = <LowGrip>);
AssertTrue(v.GetDirection() = <NORTH>);
); let v = vs(2) in
(
AssertTrue(v.GetPosition().X() = 1);
AssertTrue(v.GetPosition().Y() = 2);
AssertTrue(v.GetMessage() = <LeftTurn>);
AssertTrue(v.GetDirection() = <NORTH>);
)
);
vec.SetSpeed(0);
vec.setTurnIndicator(<LEFT>);
ctrl.Step(); let vs = ctrl.GetTrafficData() in
( let v = vs(1) in
(
AssertTrue(v.GetPosition().X() = 1);
AssertTrue(v.GetPosition().Y() = 2);
AssertTrue(v.GetMessage() = <LowGrip>);
AssertTrue(v.GetDirection() = <NORTH>);
); let v = vs(2) in
(
AssertTrue(v.GetPosition().X() = 1);
AssertTrue(v.GetPosition().Y() = 2);
AssertTrue(v.GetMessage() = <LeftTurn>);
AssertTrue(v.GetDirection() = <NORTH>);
)
);
ctrl.AddOncomingVehicle(ctrl2.getVehicleDTO());
ctrl.AddOncomingVehicle(ctrl3.getVehicleDTO());
ctrl.Step(); let vs = ctrl.GetTrafficData() in let v = vs(3) in
(
AssertTrue(v.GetMessage() = <Congestion>);
);
-- --test add of traffic data. Test that adding loops when more than five
ctrl.AddTrafficData(21, [new TrafficData(<Congestion>, pos , <NORTH>)]);
ctrl.AddTrafficData(22, [new TrafficData(<Congestion>, pos , <NORTH>)]);
ctrl.AddTrafficData(23, [new TrafficData(<Congestion>, pos , <NORTH>)]);
ctrl.AddTrafficData(24, [new TrafficData(<Congestion>, pos , <NORTH>)]);
ctrl.AddTrafficData(25, [new TrafficData(<Congestion>, pos , <NORTH>)]);
ctrl.AddTrafficData(26, [new TrafficData(<LeftTurn>, pos , <NORTH>)]);
-- actually this can't be automatically tested. -- The added data is internal only. The test can only be verified -- by checking the handled events in environment.
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.