skip to content
==> tests/rect.c <==
1/* Rect arithmetic as ratatui's Rect tests specify it, saturation included. */
2#include "mesh/check.h"
3#include "tui/rect.h"
4
5int main(void) {
6    tui_rect r = tui_rect_new(65530, 65530, 10, 10);
7    CHECK_U(r.width, 5);
8    CHECK_U(tui_rect_right(r), 65535);
9    tui_rect a = {1, 2, 3, 4}, b = {2, 3, 4, 5};
10    tui_rect i = tui_rect_intersection(a, b);
11    CHECK(tui_rect_eq(i, (tui_rect){2, 3, 2, 3}));
12    CHECK(tui_rect_eq(tui_rect_union(a, b), (tui_rect){1, 2, 5, 6}));
13    CHECK(tui_rect_empty(tui_rect_intersection((tui_rect){0, 0, 2, 2}, (tui_rect){5, 5, 2, 2})));
14    CHECK(tui_rect_eq(tui_rect_inner((tui_rect){0, 0, 10, 10}, 1, 2), (tui_rect){1, 2, 8, 6}));
15    CHECK(tui_rect_eq(tui_rect_inner((tui_rect){0, 0, 1, 10}, 1, 0), (tui_rect){0, 0, 0, 0}));
16    CHECK(tui_rect_eq(tui_rect_indent_x((tui_rect){3, 0, 5, 1}, 7), (tui_rect){10, 0, 0, 1}));
17    CHECK(tui_rect_contains(a, 1, 2) && !tui_rect_contains(a, 4, 2));
18    CHECK_U(tui_rect_area((tui_rect){0, 0, 300, 300}), 90000);
19    return mesh_check_done();
20}