MCPcopy Create free account
hub / github.com/DFHack/dfhack / TEST_F

Function TEST_F

library/BitArray.test.cpp:11–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9};
10
11TEST_F(DFLinkedListTest, edit){
12 EXPECT_TRUE(list.empty());
13 EXPECT_EQ(list.size(), 0);
14 EXPECT_EQ(list.begin(), list.end());
15
16 auto *job1 = new df::job();
17 job1->id = 1;
18
19 auto *job2 = new df::job();
20 job2->id = 2;
21
22 auto *job3 = new df::job();
23 job3->id = 3;
24
25
26 list.push_front(job1); // { 1 }
27 EXPECT_EQ(list.next->prev, &list);
28
29 auto it = list.begin();
30 EXPECT_EQ((*it)->id, 1);
31 EXPECT_EQ(job1->list_link->item, job1);
32
33 it = list.insert_after(it,job2); // { 1 2 }
34 EXPECT_EQ((*it)->id,2);
35 EXPECT_EQ(job2->list_link->item, job2);
36
37 it = list.insert(it,job3); // { 1 3 2 }
38 EXPECT_EQ((*it)->id,3);
39 EXPECT_EQ(job3->list_link->item, job3);
40
41 ++it;
42 EXPECT_EQ(*it, job2);
43 --it;
44 EXPECT_EQ(*it, job3);
45
46 it = list.erase(it); // { 1 2 }
47 EXPECT_EQ(job3->list_link, nullptr);
48 EXPECT_EQ(*it, job2);
49 EXPECT_EQ(list.size(), 2);
50
51 it = list.end();
52 EXPECT_THROW(list.insert_after(it,job3),DFHack::Error::InvalidArgument);
53 --it; // linear search for end()-1
54 EXPECT_EQ(*it, job2);
55
56 while (!list.empty())
57 {
58 list.erase(list.begin());
59 }
60 EXPECT_EQ(list.size(), 0);
61 EXPECT_EQ(job2->list_link, nullptr);
62 EXPECT_EQ(job1->list_link, nullptr);
63
64 delete job1;
65 delete job2;
66 delete job3;
67}

Callers

nothing calls this directly

Calls 8

push_frontMethod · 0.80
insert_afterMethod · 0.80
emptyMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
insertMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected