]> rtime.felk.cvut.cz Git - hubacji1/iamcar2.git/blob - src/test22.cc
Add test 22, 23, 24, 25
[hubacji1/iamcar2.git] / src / test22.cc
1 #include <chrono>
2 #include <iostream>
3 #include <jsoncpp/json/json.h>
4
5 #include "psp.h"
6 #include "rrtce.h"
7 #define EPP RRTCE13
8
9 std::chrono::high_resolution_clock::time_point TSTART_;
10 std::chrono::high_resolution_clock::time_point TEND_;
11 inline void TSTART() { TSTART_ = std::chrono::high_resolution_clock::now(); }
12 inline void TEND() { TEND_ = std::chrono::high_resolution_clock::now(); }
13 inline double TDIFF()
14 {
15         std::chrono::duration<double> DT_;
16         DT_ = std::chrono::duration_cast<std::chrono::duration<double>>(
17                 TEND_ - TSTART_
18         );
19         return DT_.count();
20 }
21 inline void TPRINT(const char *what)
22 {
23         std::cerr << what << ": " << TDIFF() << std::endl;
24 }
25
26 int main()
27 {
28         Json::Value jvi; // JSON input
29         Json::Value jvo; // JSON output
30         std::cin >> jvi;
31
32         PSPlanner psp;
33         psp.ps().border(
34                 jvi["slot"][0][0][0].asDouble(),
35                 jvi["slot"][0][0][1].asDouble(),
36
37                 jvi["slot"][0][1][0].asDouble(),
38                 jvi["slot"][0][1][1].asDouble(),
39
40                 jvi["slot"][0][2][0].asDouble(),
41                 jvi["slot"][0][2][1].asDouble(),
42
43                 jvi["slot"][0][3][0].asDouble(),
44                 jvi["slot"][0][3][1].asDouble()
45         );
46
47         psp.fe();
48
49         jvi["goal"][0] = psp.cc().x();
50         jvi["goal"][1] = psp.cc().y();
51         jvi["goal"][2] = psp.cc().h();
52         unsigned int icnt = 0;
53         for (auto &i: psp.possible_goals()) {
54                 jvi["goals"][icnt][0] = i.x();
55                 jvi["goals"][icnt][1] = i.y();
56                 jvi["goals"][icnt][2] = i.h();
57                 icnt++;
58         }
59         jvi["goals"][icnt][0] = psp.cc().x();
60         jvi["goals"][icnt][1] = psp.cc().y();
61         jvi["goals"][icnt][2] = psp.cc().h();
62
63         EPP epp;
64         epp.json(jvi);
65         epp.init();
66         epp.sample_dist_type(1);
67         epp.set_sample(-50, 50, -50, 50, 0, 2 * M_PI);
68
69         while (epp.next()) {}
70
71         jvo = epp.json();
72         jvo["slot"] = jvi["slot"];
73         std::cout << jvo << std::endl;
74         return 0;
75 }