Structures

Форк
0
/
tst_testlist.cpp 
86 строк · 1.4 Кб
1
#include <QtTest>
2
#include <QCoreApplication>
3

4
#include "../../src/list.hpp"
5

6
using namespace stt;
7

8
class TestList : public QObject
9
{
10
    Q_OBJECT
11
    List<int> list;
12

13
    QVector<int> icase;
14

15
public:
16
    TestList();
17
    ~TestList();
18

19
private slots:
20
    void initTestCase();
21
    void pushTestCase();
22
    void insertTestCase();
23
    void flipTestCase();
24
    void popTestCase();
25
    void cleanupTestCase();
26
};
27

28
TestList::TestList()
29
{
30

31
}
32

33
TestList::~TestList() {}
34

35
void TestList::initTestCase()
36
{
37
    icase = {9, 10, 13, 14, 15, 17, 18};
38
}
39

40
void TestList::pushTestCase()
41
{
42
    foreach(auto i, icase)
43
        list.push_back(i);
44

45
    foreach(auto i, icase)
46
        list.push_front(i);
47
}
48

49

50
void TestList::insertTestCase()
51
{
52
    List<int> list_2(1, 2, 3, 4);
53
    list_2.insert(1, -10);
54
    QCOMPARE(list_2[0], 1);
55
    QCOMPARE(list_2[1], -10);
56
    QCOMPARE(list_2[2], 2);
57
    QCOMPARE(list_2[3], 3);
58
    QCOMPARE(list_2[4], 4);
59
}
60

61
void TestList::flipTestCase()
62
{
63
    List<int> list_2 = list;
64
    list_2.flip();
65
    for(int i = icase.size() - 1; i >= 0; i--)
66
        QCOMPARE(list_2.pop_front(), icase[i]);
67
}
68

69
void TestList::popTestCase()
70
{
71
    for(int i = 0; i < icase.size(); i++)
72
        QCOMPARE(list.pop_front(), icase[icase.size() - i - 1]);
73

74
    for(int i = icase.size() - 1; i >= 0; i--)
75
        QCOMPARE(list.pop_back(), icase[i]);
76
}
77

78
void TestList::cleanupTestCase()
79
{
80
    list.clear();
81
    QCOMPARE(list.empty(), true);
82
}
83

84
QTEST_APPLESS_MAIN(TestList)
85

86
#include "tst_testlist.moc"
87

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.