Exemple #1
0
// Test case generated from prender.c printf statements
TEST(PlayerTest, MoveCrossedSegment) {
    Vertex vs1{1, 16};
    Vertex vs2{1, 2};
    Vertex vs3{5, 7};

    std::vector<Sector> sectors;
    Sector s1{0, 100};
    s1.set_number_of_points(4);
    s1.add_vertex(vs1);
    s1.add_vertex(vs2);
    s1.add_vertex(vs3);
    s1.add_neighbor(-1);
    s1.add_neighbor(1);
    sectors.push_back(s1);

    float FLOOR = 999;
    float CEILING = 1000;
    Sector s2{FLOOR, CEILING};
    sectors.push_back(s2);

    Vector3D<float> location{4.184440, 6, 0};

    float ANGLE = 30;
    Player player{location, ANGLE, s1};
    float dx = 0.190669;
    float dy = 0;
    player.move(dx, dy, sectors);

    Sector result = player.get_sector();
    EXPECT_EQ(FLOOR, result.get_floor());
    EXPECT_EQ(CEILING, result.get_ceiling());
    EXPECT_EQ(ANGLE, player.get_angle());
    EXPECT_EQ(location.getX()+dx, player.get_location().getX());
    EXPECT_EQ(location.getY()+dy, player.get_location().getY());
}
Exemple #2
0
// Test case generated from prender.c printf statements
TEST(PlayerTest, DidNotCrossSegment) {
    Vertex vs1{1, 16};
    Vertex vs2{1, 2};
    Vertex vs3{5, 7};
    Vertex vs4{5, 11};

    float FLOOR = 999;
    float CEILING = 1000;

    std::vector<Sector> sectors;
    Sector s1{FLOOR, CEILING};
    s1.set_number_of_points(4);
    s1.add_vertex(vs1);
    s1.add_vertex(vs2);
    s1.add_vertex(vs3);
    s1.add_vertex(vs4);
    s1.add_neighbor(-1);
    s1.add_neighbor(1);
    s1.add_neighbor(1);
    s1.add_neighbor(11);
    s1.add_neighbor(22);

    sectors.push_back(s1);

    Vector3D<float> location{4.184440, 6, 0};

    float ANGLE = 25;
    Player player{location, ANGLE, s1};
    EXPECT_NO_FATAL_FAILURE(player.move(0, 0, sectors));

    Sector result = player.get_sector();
    EXPECT_EQ(FLOOR, result.get_floor());
    EXPECT_EQ(CEILING, result.get_ceiling());
    EXPECT_EQ(ANGLE, player.get_angle());
    EXPECT_EQ(location.getX(), player.get_location().getX());
    EXPECT_EQ(location.getY(), player.get_location().getY());
}