-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathtest_problem.cpp
44 lines (36 loc) · 1.07 KB
/
test_problem.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <problem.hpp>
#include <plan.hpp>
#include "gtest/gtest.h"
TEST(Problem, loading)
{
Problem P = Problem("../tests/instances/toy_problem.txt");
Graph* G = P.getG();
ASSERT_EQ(P.getNum(), 2);
ASSERT_EQ(P.getMaxTimestep(), 10);
ASSERT_EQ(P.getMaxCompTime(), 1000);
Config starts = P.getConfigStart();
ASSERT_EQ(starts.size(), 2);
ASSERT_EQ(starts[0], G->getNode(0, 0));
ASSERT_EQ(starts[1], G->getNode(1, 1));
Config goals = P.getConfigGoal();
ASSERT_EQ(goals.size(), 2);
ASSERT_EQ(goals[0], G->getNode(1, 0));
ASSERT_EQ(goals[1], G->getNode(0, 1));
}
TEST(Problem, plan)
{
Problem P = Problem("../tests/instances/toy_problem.txt");
Graph* G = P.getG();
Plan plan0;
Config c0_0 = {G->getNode(0, 0), G->getNode(1, 1)};
Config c0_1 = {G->getNode(1, 0), G->getNode(0, 1)};
plan0.add(c0_0);
plan0.add(c0_1);
ASSERT_TRUE(plan0.validate(&P));
Plan plan1;
Config c1_0 = {G->getNode(0, 0), G->getNode(1, 1)};
Config c1_1 = {G->getNode(0, 1), G->getNode(1, 0)};
plan1.add(c1_0);
plan1.add(c1_1);
ASSERT_FALSE(plan1.validate(&P));
}