Skip to content

Commit 75e657d

Browse files
authored
Merge pull request #5 from OwlSurf/master
Tests fixed.
2 parents 5674cad + 01bd46a commit 75e657d

File tree

3 files changed

+104
-97
lines changed

3 files changed

+104
-97
lines changed

tests/main.c

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
#include "test.h"
66
#include "test_table.h"
77
#include "../src/table.h"
8+
#include "../src/string_builder.h"
9+
10+
11+
12+
813

914
static const size_t NUM_TESTS = 1;
1015
static Test (*test_getters[])() = {
@@ -13,56 +18,56 @@ static Test (*test_getters[])() = {
1318

1419
int main()
1520
{
16-
Table table = get_empty_table();
17-
set_default_alignments(&table, 4,
18-
(TextAlignment[]){ ALIGN_RIGHT, ALIGN_LEFT, ALIGN_RIGHT, ALIGN_LEFT });
19-
add_empty_cell(&table);
20-
override_left_border(&table, BORDER_NONE);
21-
add_cell(&table, " Test suite ");
22-
add_cell(&table, " #Cases ");
23-
add_cell(&table, " Result ");
24-
override_alignment_of_row(&table, ALIGN_LEFT);
25-
next_row(&table);
26-
set_hline(&table, BORDER_SINGLE);
21+
Table *table = get_empty_table();
22+
set_default_alignments(table, 4, (TableHAlign[]){ H_ALIGN_RIGHT, H_ALIGN_LEFT},
23+
(TableVAlign[]){ V_ALIGN_TOP, V_ALIGN_BOTTOM });
24+
add_empty_cell(table);
25+
override_left_border(table, BORDER_NONE);
26+
add_cell(table, " Test suite ");
27+
add_cell(table, " #Cases ");
28+
add_cell(table, " Result ");
29+
override_horizontal_alignment(table, H_ALIGN_LEFT);
30+
next_row(table);
31+
set_hline(table, BORDER_SINGLE);
2732

2833
bool error = false;
29-
Vector error_builder = strbuilder_create(100);
34+
StringBuilder error_builder = strb_create();
3035
for (size_t i = 0; i < NUM_TESTS; i++)
3136
{
3237
Test test = test_getters[i]();
3338
if (test.num_cases != 0)
3439
{
35-
add_cell_fmt(&table, " %zu ", i + 1);
36-
add_cell_fmt(&table, " %s ", test.name);
37-
add_cell_fmt(&table, " %d ", test.num_cases);
40+
add_cell_fmt(table, " %zu ", i + 1);
41+
add_cell_fmt(table, " %s ", test.name);
42+
add_cell_fmt(table, " %d ", test.num_cases);
3843

3944
if (test.suite(&error_builder))
4045
{
41-
add_cell(&table, F_GREEN " passed " COL_RESET);
46+
add_cell(table, F_GREEN " passed " COL_RESET);
4247
}
4348
else
4449
{
4550
printf("[" F_RED "%s" COL_RESET "] %s",
4651
test_getters[i]().name,
4752
(char*)error_builder.buffer);
48-
add_cell(&table, F_RED " failed " COL_RESET);
53+
add_cell(table, F_RED " failed " COL_RESET);
4954
error = true;
5055
}
51-
strbuilder_reset(&error_builder);
52-
next_row(&table);
56+
strb_clear(&error_builder);
57+
next_row(table);
5358
}
5459
}
5560
vec_destroy(&error_builder);
5661

57-
set_span(&table, 3, 1);
58-
override_alignment(&table, ALIGN_CENTER);
59-
set_hline(&table, BORDER_SINGLE);
60-
add_cell(&table, " End result ");
61-
add_cell(&table, error ? F_RED " failed " COL_RESET : F_GREEN " passed " COL_RESET);
62-
next_row(&table);
63-
make_boxed(&table, BORDER_SINGLE);
64-
print_table(&table);
65-
free_table(&table);
62+
set_span(table, 3, 1);
63+
override_horizontal_alignment(table, H_ALIGN_CENTER);
64+
set_hline(table, BORDER_SINGLE);
65+
add_cell(table, " End result ");
66+
add_cell(table, error ? F_RED " failed " COL_RESET : F_GREEN " passed " COL_RESET);
67+
next_row(table);
68+
make_boxed(table, BORDER_SINGLE);
69+
print_table(table);
70+
free_table(table);
6671

6772
return error ? EXIT_FAILURE : EXIT_SUCCESS;
6873
}

tests/test.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22
#include <stdbool.h>
33
#include "../src/string_util.h"
4-
4+
#include "../src/vector.h"
55
#define F_RED "\x1B[1;31m"
66
#define F_GREEN "\x1B[1;32m"
77
#define COL_RESET "\x1B[0m"

tests/test_table.c

Lines changed: 70 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
#include "../src/vector.h"
77

88
#define NUM_CASES 4
9+
#define MAX_COLS 11
910

1011
#define GREEN "\x1B[92m"
1112
#define CYAN "\x1B[1;36m"
1213
#define YELLOW "\x1B[33;1m"
1314
#define RED "\x1B[31;1m"
1415
#define COL_RESET "\x1B[0m"
1516

16-
char *arrayA[4][4] = {
17+
const char *arrayA[4][4] = {
1718
{ "alpha", YELLOW "beta" COL_RESET, "gamma", " delta " },
1819
{ " 1 ", YELLOW " -1110.1 " COL_RESET, "a....... ", " 777" },
1920
{ " 2 ", " 10 ", "b ", " 222" },
@@ -24,93 +25,94 @@ bool table_test(__attribute__((unused)) Vector *error_builder)
2425
{
2526
// Case 1
2627
Table *t1 = get_empty_table();
27-
set_default_alignments(&t1, 5, (TextAlignment[]){ ALIGN_LEFT, ALIGN_NUMBERS, ALIGN_RIGHT, ALIGN_CENTER, ALIGN_CENTER });
28-
add_cells_from_array(&t1, 4, 4, (char**)arrayA);
29-
set_position(&t1, 0, 0);
30-
override_alignment_of_row(&t1, ALIGN_CENTER);
31-
set_position(&t1, 4, 0);
32-
set_vline(&t1, 4, BORDER_SINGLE);
33-
add_cell(&t1, " test ");
34-
set_position(&t1, 2, 1);
35-
set_vline(&t1, 2, BORDER_SINGLE);
36-
set_hline(&t1, BORDER_DOUBLE);
37-
set_position(&t1, 3, 4);
38-
set_vline(&t1, 3, BORDER_SINGLE);
39-
add_cell(&t1, "!");
40-
set_position(&t1, 3, 5);
41-
set_span(&t1, 2, 2);
42-
override_alignment(&t1, ALIGN_RIGHT);
43-
override_above_border(&t1, BORDER_NONE);
44-
add_cell(&t1, " ^ no border \n and span x \n and also y ");
45-
set_position(&t1, 0, 4);
46-
set_hline(&t1, BORDER_SINGLE);
47-
set_span(&t1, 2, 1);
48-
add_cell(&t1, " span x");
49-
override_alignment(&t1, ALIGN_LEFT);
50-
set_vline(&t1, 4, BORDER_SINGLE);
51-
set_span(&t1, 1, 3);
52-
add_cell(&t1, " span y \n span y \n span y \n span y \n < span y ");
53-
next_row(&t1);
54-
set_hline(&t1, BORDER_SINGLE);
55-
set_span(&t1, 2, 1);
56-
add_cell(&t1, GREEN " span x" COL_RESET);
57-
next_row(&t1);
58-
set_hline(&t1, BORDER_DOUBLE);
59-
set_span(&t1, 2, 1);
60-
add_cell(&t1, CYAN " span x" COL_RESET);
61-
next_row(&t1);
62-
set_position(&t1, 1, 6);
63-
set_vline(&t1, 1, BORDER_SINGLE);
64-
set_position(&t1, 2, 6);
65-
override_left_border(&t1, BORDER_NONE);
66-
make_boxed(&t1, BORDER_SINGLE);
67-
print_table(&t1);
68-
free_table(&t1);
28+
set_default_alignments(t1, 5, (TableHAlign[]){ H_ALIGN_RIGHT, H_ALIGN_LEFT},
29+
(TableVAlign[]){ V_ALIGN_TOP, V_ALIGN_BOTTOM });
30+
add_cells_from_array(t1, 4, 4, (const char**)arrayA);
31+
set_position(t1, 0, 0);
32+
override_horizontal_alignment(t1, H_ALIGN_CENTER);
33+
set_position(t1, 4, 0);
34+
set_vline(t1, 4, BORDER_SINGLE);
35+
add_cell(t1, " test ");
36+
set_position(t1, 2, 1);
37+
set_vline(t1, 2, BORDER_SINGLE);
38+
set_hline(t1, BORDER_DOUBLE);
39+
set_position(t1, 3, 4);
40+
set_vline(t1, 3, BORDER_SINGLE);
41+
add_cell(t1, "!");
42+
set_position(t1, 3, 5);
43+
set_span(t1, 2, 2);
44+
override_horizontal_alignment(t1, H_ALIGN_RIGHT);
45+
override_above_border(t1, BORDER_NONE);
46+
add_cell(t1, " ^ no border \n and span x \n and also y ");
47+
set_position(t1, 0, 4);
48+
set_hline(t1, BORDER_SINGLE);
49+
set_span(t1, 2, 1);
50+
add_cell(t1, " span x");
51+
override_horizontal_alignment(t1, H_ALIGN_LEFT);
52+
set_vline(t1, 4, BORDER_SINGLE);
53+
set_span(t1, 1, 3);
54+
add_cell(t1, " span y \n span y \n span y \n span y \n < span y ");
55+
next_row(t1);
56+
set_hline(t1, BORDER_SINGLE);
57+
set_span(t1, 2, 1);
58+
add_cell(t1, GREEN " span x" COL_RESET);
59+
next_row(t1);
60+
set_hline(t1, BORDER_DOUBLE);
61+
set_span(t1, 2, 1);
62+
add_cell(t1, CYAN " span x" COL_RESET);
63+
next_row(t1);
64+
set_position(t1, 1, 6);
65+
set_vline(t1, 1, BORDER_SINGLE);
66+
set_position(t1, 2, 6);
67+
override_left_border(t1, BORDER_NONE);
68+
make_boxed(t1, BORDER_SINGLE);
69+
print_table(t1);
70+
free_table(t1);
6971

7072
// Case 2
71-
Table t2 = get_empty_table();
73+
Table *t2 = get_empty_table();
7274
for (size_t i = 0; i < MAX_COLS - 1; i++)
7375
{
7476
for (size_t j = 0; j < MAX_COLS - 1; j++)
7577
{
76-
override_alignment(&t2, ALIGN_RIGHT);
77-
add_cell_fmt(&t2, " %d ", i * (MAX_COLS - 1) + j + 1);
78+
override_horizontal_alignment(t2, H_ALIGN_RIGHT);
79+
add_cell_fmt(t2, " %d ", i * (MAX_COLS - 1) + j + 1);
7880
}
79-
next_row(&t2);
81+
next_row(t2);
8082
}
81-
make_boxed(&t2, BORDER_DOUBLE);
82-
print_table(&t2);
83-
free_table(&t2);
83+
make_boxed(t2, BORDER_DOUBLE);
84+
print_table(t2);
85+
free_table(t2);
8486

8587
// Case 3
86-
Table t3 = get_empty_table();
87-
next_row(&t3);
88-
print_table(&t3);
89-
free_table(&t3);
88+
Table *t3 = get_empty_table();
89+
next_row(t3);
90+
print_table(t3);
91+
free_table(t3);
9092

9193
// Case 4
92-
Table t4 = get_empty_table();
94+
Table *t4 = get_empty_table();
9395
for (size_t i = 1; i < MAX_COLS - 1; i++)
9496
{
95-
set_span(&t4, i, 1);
96-
add_cell_fmt(&t4, " x ");
97-
set_span(&t4, MAX_COLS - i - 1, 1);
98-
add_cell_fmt(&t4, " x ");
99-
next_row(&t4);
100-
set_hline(&t4, BORDER_SINGLE);
97+
set_span(t4, i, 1);
98+
add_cell_fmt(t4, " x ");
99+
set_span(t4, MAX_COLS - i - 1, 1);
100+
add_cell_fmt(t4, " x ");
101+
next_row(t4);
102+
set_hline(t4, BORDER_SINGLE);
101103
}
102104

103105
for (size_t i = 0; i < MAX_COLS / 2; i++)
104106
{
105-
set_span(&t4, 2, 1);
106-
add_cell_fmt(&t4, " x ");
107+
set_span(t4, 2, 1);
108+
add_cell_fmt(t4, " x ");
107109
}
108110

109-
next_row(&t4);
110-
set_all_vlines(&t4, BORDER_SINGLE);
111-
make_boxed(&t4, BORDER_SINGLE);
112-
print_table(&t4);
113-
free_table(&t4);
111+
next_row(t4);
112+
set_all_vlines(t4, BORDER_SINGLE);
113+
make_boxed(t4, BORDER_SINGLE);
114+
print_table(t4);
115+
free_table(t4);
114116

115117
return true;
116118
}

0 commit comments

Comments
 (0)