use traffic_sim::{
math::{LineSegment2d, Point2d},
LinkAttributes, Simulation, VehicleAttributes,
};
#[test]
fn vehicle_drives_forward() {
let mut sim = Simulation::new();
let link = sim.add_link(&LinkAttributes {
curve: &LineSegment2d::from_ends(Point2d::new(0.0, 0.0), Point2d::new(100.0, 0.0)),
speed_limit: 16.66,
});
let veh = sim.add_vehicle(
&VehicleAttributes {
length: 5.0,
width: 2.0,
max_acc: 2.0,
comf_dec: 2.0,
wheel_base: 1.5,
},
link,
);
let mut pos = sim.get_vehicle(veh).pos_mid();
for _ in 0..100 {
sim.step(0.1);
let next_pos = sim.get_vehicle(veh).pos_mid();
assert!(next_pos > pos);
pos = next_pos;
}
}