Add test cases for ds_{box,fbox}_transform()
[platform/core/uifw/libds.git] / tests / box-test.c
1 #include <assert.h>
2 #include <stdio.h>
3 #include <string.h>
4 #include <libds/util/box.h>
5
6 static void
7 test_box_transform(void)
8 {
9     const int width = 800, height = 600;
10     struct ds_box src = { 10, 20, 300, 400 };
11     struct ds_box transform90 = { 180, 10, 400, 300 },
12                   transform180 = { 490, 180, 300, 400 },
13                   transform270 = { 20, 490, 400, 300 },
14                   transform_flipped = { 490, 20, 300, 400 },
15                   transform_flipped90 = { 20, 10, 400, 300 },
16                   transform_flipped180 = { 10, 180, 300, 400 },
17                   transform_flipped270 = { 180, 490, 400, 300 };
18     struct ds_box result;
19
20     ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_NORMAL, width, height);
21     assert(memcmp(&result, &src, sizeof(struct ds_box)) == 0);
22
23     ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_90, width, height);
24     assert(memcmp(&result, &transform90, sizeof(struct ds_box)) == 0);
25
26     ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_180, width, height);
27     assert(memcmp(&result, &transform180, sizeof(struct ds_box)) == 0);
28
29     ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_270, width, height);
30     assert(memcmp(&result, &transform270, sizeof(struct ds_box)) == 0);
31
32     ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED, width, height);
33     assert(memcmp(&result, &transform_flipped, sizeof(struct ds_box)) == 0);
34
35     ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_90, width, height);
36     assert(memcmp(&result, &transform_flipped90, sizeof(struct ds_box)) == 0);
37
38     ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_180, width, height);
39     assert(memcmp(&result, &transform_flipped180, sizeof(struct ds_box)) == 0);
40
41     ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_270, width, height);
42     assert(memcmp(&result, &transform_flipped270, sizeof(struct ds_box)) == 0);
43 }
44
45 static void
46 test_fbox_transform(void)
47 {
48     const int width = 800, height = 600;
49     struct ds_fbox src = { 10.0, 20.0, 300.0, 400.0 };
50     struct ds_fbox transform90 = { 180.0, 10.0, 400.0, 300.0 },
51                   transform180 = { 490.0, 180.0, 300.0, 400.0 },
52                   transform270 = { 20.0, 490.0, 400.0, 300.0 },
53                   transform_flipped = { 490.0, 20.0, 300.0, 400.0 },
54                   transform_flipped90 = { 20.0, 10.0, 400.0, 300.0 },
55                   transform_flipped180 = { 10.0, 180.0, 300.0, 400.0 },
56                   transform_flipped270 = { 180.0, 490.0, 400.0, 300.0 };
57     struct ds_fbox result;
58
59     ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_NORMAL, width, height);
60     assert(memcmp(&result, &src, sizeof(struct ds_box)) == 0);
61
62     ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_90, width, height);
63     assert(memcmp(&result, &transform90, sizeof(struct ds_box)) == 0);
64
65     ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_180, width, height);
66     assert(memcmp(&result, &transform180, sizeof(struct ds_box)) == 0);
67
68     ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_270, width, height);
69     assert(memcmp(&result, &transform270, sizeof(struct ds_box)) == 0);
70
71     ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED, width, height);
72     assert(memcmp(&result, &transform_flipped, sizeof(struct ds_box)) == 0);
73
74     ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_90, width, height);
75     assert(memcmp(&result, &transform_flipped90, sizeof(struct ds_box)) == 0);
76
77     ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_180, width, height);
78     assert(memcmp(&result, &transform_flipped180, sizeof(struct ds_box)) == 0);
79
80     ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_270, width, height);
81     assert(memcmp(&result, &transform_flipped270, sizeof(struct ds_box)) == 0);
82 }
83
84 int
85 main(int argc, char *argv[])
86 {
87     test_box_transform();
88     test_fbox_transform();
89
90     return 0;
91 }