]> rtime.felk.cvut.cz Git - hubacji1/bcar.git/blob - ut/pslot.t.cc
Add euclidean distance computation to point
[hubacji1/bcar.git] / ut / pslot.t.cc
1 #include <cmath>
2 #include "wvtest.h"
3
4 #include "pslot.hh"
5
6 using namespace bcar;
7
8 WVTEST_MAIN("pslot basic geometry")
9 {
10         ParkingSlot ps(Point(1.0, 1.0), 3.0 * M_PI / 4.0, sqrt(8.0), sqrt(2.0));
11         WVPASSEQ_DOUBLE(ps.lrx(), 1.0, 0.00001);
12         WVPASSEQ_DOUBLE(ps.lry(), 1.0, 0.00001);
13         WVPASSEQ_DOUBLE(ps.rrx(), 3.0, 0.00001);
14         WVPASSEQ_DOUBLE(ps.rry(), 3.0, 0.00001);
15         WVPASSEQ_DOUBLE(ps.rfx(), 2.0, 0.00001);
16         WVPASSEQ_DOUBLE(ps.rfy(), 4.0, 0.00001);
17         WVPASSEQ_DOUBLE(ps.lfx(), 0.0, 0.00001);
18         WVPASSEQ_DOUBLE(ps.lfy(), 2.0, 0.00001);
19         WVPASS(ps.right());
20         WVPASS(!ps.parallel());
21         WVPASSEQ_DOUBLE(ps.h(), M_PI * 3.0 / 4.0, 0.00001);
22         Point p(ps.lfx(), ps.lfy());
23         ps = ParkingSlot(p, 7.0 * M_PI / 4.0, sqrt(8.0), sqrt(2.0));
24         ps.swap_side();
25         WVPASSEQ_DOUBLE(ps.lrx(), 0.0, 0.00001);
26         WVPASSEQ_DOUBLE(ps.lry(), 2.0, 0.00001);
27         WVPASSEQ_DOUBLE(ps.rrx(), 2.0, 0.00001);
28         WVPASSEQ_DOUBLE(ps.rry(), 4.0, 0.00001);
29         WVPASSEQ_DOUBLE(ps.rfx(), 3.0, 0.00001);
30         WVPASSEQ_DOUBLE(ps.rfy(), 3.0, 0.00001);
31         WVPASSEQ_DOUBLE(ps.lfx(), 1.0, 0.00001);
32         WVPASSEQ_DOUBLE(ps.lfy(), 1.0, 0.00001);
33         WVPASS(!ps.right());
34         WVPASS(!ps.parallel());
35         WVPASSEQ_DOUBLE(ps.h(), -M_PI / 4.0, 0.00001);
36 }