==> 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}