-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest-pairs_to_vienna.c
68 lines (60 loc) · 2.32 KB
/
test-pairs_to_vienna.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "na.h"
#include "unity.h"
#include "empty-setUp-tearDown.h"
#include <string.h>
#define UP NA_UNPAIRED
void test_xpairs_to_vienna(void) {
uint pairs[] = {8, 7, 6, UP, UP, UP, 2, 1, 0};
uint n = sizeof(pairs) / sizeof(*pairs);
char *expected_vienna = "(((...)))";
char vienna[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
char *out_vienna = xpairs_to_vienna(n, pairs, vienna);
TEST_ASSERT_EQUAL_CHAR_ARRAY(expected_vienna, vienna, n);
TEST_ASSERT_EQUAL_CHAR_ARRAY(expected_vienna, out_vienna, n);
TEST_ASSERT_EQUAL_PTR(vienna, out_vienna);
}
void test_pairs_to_vienna(void) {
bool verbose = true;
uint pairs[] = {8, 7, 6, UP, UP, UP, 2, 1, 0};
uint n = sizeof(pairs) / sizeof(*pairs);
char *expected_vienna = "(((...)))";
char vienna[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int retcode = pairs_to_vienna(n, pairs, verbose, vienna);
TEST_ASSERT_EQUAL_CHAR_ARRAY(expected_vienna, vienna, n);
TEST_ASSERT_EQUAL_INT(EXIT_SUCCESS, retcode);
}
void test_pairs_to_vienna_fails_self_pairentry(void) {
bool verbose = true;
uint pairs[] = {8, 7, 2, UP, UP, UP, 2, 1, 0};
uint n = sizeof(pairs) / sizeof(*pairs);
char vienna[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int retcode = pairs_to_vienna(n, pairs, verbose, vienna);
TEST_ASSERT_EQUAL_INT(EXIT_FAILURE, retcode);
}
void test_pairs_to_vienna_fails_two_positions_paired_to_same(void) {
bool verbose = true;
uint pairs[] = {8, 7, 7, UP, UP, UP, UP, 1, 0};
uint n = sizeof(pairs) / sizeof(*pairs);
char vienna[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int retcode = pairs_to_vienna(n, pairs, verbose, vienna);
TEST_ASSERT_EQUAL_INT(EXIT_FAILURE, retcode);
}
void test_pairs_to_vienna_fails_paired_to_unpaired(void) {
bool verbose = true;
uint pairs[] = {8, 7, 6, UP, UP, UP, UP, 1, 0};
uint n = sizeof(pairs) / sizeof(*pairs);
char vienna[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int retcode = pairs_to_vienna(n, pairs, verbose, vienna);
TEST_ASSERT_EQUAL_INT(EXIT_FAILURE, retcode);
}
int
main(void)
{
UNITY_BEGIN();
RUN_TEST(test_xpairs_to_vienna);
RUN_TEST(test_pairs_to_vienna);
RUN_TEST(test_pairs_to_vienna_fails_self_pairentry);
RUN_TEST(test_pairs_to_vienna_fails_two_positions_paired_to_same);
RUN_TEST(test_pairs_to_vienna_fails_paired_to_unpaired);
return UNITY_END();
}