Beispiel #1
0
TEST(SeqStackTest, capacityTest) {
    SeqStack<CarInfo> stk;
    ASSERT_EQ(5, stk.getCapacity());

    CarInfo c1 {"JA87G87", 2014, 12, 9, 19, 0, 0};
    CarInfo c2 {"JA85877", 2014, 12, 9, 19, 10, 6};
    CarInfo c3 {"JB30840", 2014, 12, 9, 19, 12, 30};
    CarInfo c4 {"JB56X56", 2014, 12, 9, 19, 30, 0};
    CarInfo c5 {"JA88888", 2014, 12, 9, 19, 40, 30};
    CarInfo c6 {"JA88S88", 2014, 12, 9, 19, 45, 17};

    stk.push(c1);
    stk.push(c2);
    stk.push(c3);
    stk.push(c4);
    stk.push(c5);
    stk.push(c6);

    ASSERT_EQ(10, stk.getCapacity());

        std::string expectStr(
R"(JA88S88, 2014-12-9, 19-45-17
JA88888, 2014-12-9, 19-40-30
JB56X56, 2014-12-9, 19-30-0
JB30840, 2014-12-9, 19-12-30
JA85877, 2014-12-9, 19-10-6
JA87G87, 2014-12-9, 19-0-0
)");

    std::string actualStr;
    stk.traverse([&actualStr](const CarInfo & car) { actualStr += to_string(car) + '\n'; });
    EXPECT_STREQ(expectStr.c_str(), actualStr.c_str());
}

TEST(SeqStackTest, popTest) {
    SeqStack<CarInfo> stk;

    CarInfo c1 {"JA87G87", 2014, 12, 9, 19, 0, 0};
    CarInfo c2 {"JA85877", 2014, 12, 9, 19, 10, 6};
    CarInfo c3 {"JB30840", 2014, 12, 9, 19, 12, 30};
    CarInfo c4 {"JB56X56", 2014, 12, 9, 19, 30, 0};
    CarInfo c5 {"JA88888", 2014, 12, 9, 19, 40, 30};
    CarInfo c6 {"JA88S88", 2014, 12, 9, 19, 45, 17};

    stk.push(c1);
    stk.push(c2);
    stk.push(c3);
    stk.push(c4);
    stk.push(c5);
    stk.push(c6);

    stk.pop(3);
    stk.pop(2);
    EXPECT_THROW(stk.pop(2), std::out_of_range);
}