6 WVTEST_MAIN("parallel parking slot planner")
9 psp.ps().border(3, 3, 5, 3, 5, 8, 3, 8);
20 psp.cc() = BicycleCar(psp.gc());
23 WVPASS(!psp.collide());
24 WVPASS(psp.forward());
25 WVPASSEQ_DOUBLE(psp.ps().heading(), psp.gc().h(), 0.00001);
28 // entry point found by reverse
34 psp.cc() = BicycleCar(psp.gc());
40 auto tmpi1 = intersect(1, 1, 3, 3, 1, 3, 3, 1);
41 WVPASS(std::get<0>(tmpi1));
42 WVPASSEQ_DOUBLE(std::get<1>(tmpi1), 2, 0.00001);
43 WVPASSEQ_DOUBLE(std::get<2>(tmpi1), 2, 0.00001);
44 auto tmpi2 = intersect(1, 1, 1, 3, 3, 1, 3, 3);
45 WVPASS(!std::get<0>(tmpi2));
47 tpsp.ps().border(2, 3, 4, 3, 4, 8, 2, 8);
48 tpsp.gc() = BicycleCar(psp.gc());
49 tpsp.cc() = BicycleCar(tpsp.gc());
50 WVPASS(tpsp.collide());
52 tpsp.ps().border(3, 4.1, 3, 2.1, 8, 2.1, 8, 4.1);
56 WVTEST_MAIN("backward perpendicullar parking slot planner")
59 psp.ps().border(3, 3, 8, 3, 8, 5, 3, 5);
70 psp.cc() = BicycleCar(psp.gc());
73 WVPASS(!psp.collide());
74 WVPASS(!psp.forward());
75 WVPASSEQ_DOUBLE(psp.ps().heading() + M_PI / 2, psp.gc().h(), 0.00001);
78 // entry point found by reverse
84 psp.cc() = BicycleCar(psp.gc());
90 WVTEST_MAIN("forward perpendicullar parking slot planner")
93 psp.ps().border(3, 3, 8, 3, 8, 5, 3, 5);
102 psp.gc().df(2 + 0.5);
104 psp.cc() = BicycleCar(psp.gc());
107 WVPASS(!psp.collide());
108 WVPASS(psp.forward());
109 WVPASSEQ_DOUBLE(psp.ps().heading() - M_PI / 2, psp.gc().h(), 0.00001);
110 WVPASS(psp.parked());
112 // entry point found by reverse
118 psp.cc() = BicycleCar(psp.gc());