Package Management
test_dataArrange.h
Go to the documentation of this file.
1 
9 #ifndef TEST_DATAARRANGE_H
10 #define TEST_DATAARRANGE_H
11 
12 #include "list.h"
13 #include "acutest.h"
14 
15 void test_peek(void){
16  packData pd = init_packData(100,100);
17  pack* pk = NULL;
18  int (*fun[3])(packData, int)= {PeekFirstPack, PeekLastPack, PeekMaxPack};
19 
20  for (int i=1;i<=20;i++)
21  PushPack(pd, i-1, i);
22 
23  for (int i=0;i<3;i++){
24  TEST_CHECK((*fun[i])(pd, 0)==1);
25  }
26 
27  for (int i=0;i<3;i++){
28  TEST_CHECK((*fun[i])(pd, 99)==EMPTY);
29  }
30 
31 
32  for(int i=19;i>0;i--){
33  MergeLines(pd, 0, i);
34  TEST_CHECK(pd.lines[i].avail == 0);
35  TEST_CHECK(pd.lines[i].heap == NULL);
36  TEST_CHECK(pd.lines[i].list.first == NULL);
37  }
38 
39 
40  TEST_CHECK(PeekFirstPack(pd, 0)==1);
41  TEST_CHECK(PeekLastPack(pd, 0)==2);
42  TEST_CHECK(PeekMaxPack(pd, 0)==20);
43  for (int i=0;i<3;i++){
44  TEST_CHECK((*fun[i])(pd, 2)==EMPTY);
45  }
46 
47  TEST_CHECK(PopFirstPack(pd, 0) == 1);
48  TEST_CHECK(PopLastPack(pd, 0) == 2);
49  TEST_CHECK(PopMaxPack(pd, 0) == 20);
50 
51  TEST_CHECK(pd.packs[1].avail==0);
52  TEST_CHECK(pd.packs[2].avail==0);
53  TEST_CHECK(pd.packs[20].avail==0);
54 
55 
56  kill_packData(pd);
57 }
58 
59 void test_func_pointer(void){
60  packData pd = init_packData(100,100);
61  pack* pk = &pd.packs[1]; // Pack ID: 1
62  PushPack(pd, 0, 1);
63  TEST_CHECK( (*(pk->popfunc))(pd, pk->line) == pk->ID);
64 }
65 
66 
67 #endif
packData init_packData(int n, int l)
Initiate a package management problem.
Definition: list.c:43
int PeekFirstPack(packData, int i)
Definition: list.c:152
int PeekLastPack(packData, int i)
Definition: list.c:173
Definition: list.h:60
Definition: list.h:32