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