From 052fd2d8b98defaa593dd18d9b30f11652dd6dde Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Wed, 9 Feb 2022 22:10:23 +0200 Subject: [PATCH] [draw] Add test for hb_draw_move_to() etc --- test/api/test-draw.c | 49 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/test/api/test-draw.c b/test/api/test-draw.c index be90f7c08..0eb00ed74 100644 --- a/test/api/test-draw.c +++ b/test/api/test-draw.c @@ -903,6 +903,54 @@ test_hb_draw_stroking (void) } } +static void +test_hb_draw_drawing_fo_funcs (void) +{ + char str[2048]; + draw_data_t draw_data = { + .str = str, + .size = sizeof (str) + }; + + { + hb_draw_state_t st = HB_DRAW_STATE_DEFAULT; + draw_data.consumed = 0; + hb_draw_move_to (funcs, &draw_data, &st, 90.f, 0.f); + hb_draw_line_to (funcs, &draw_data, &st, 258.f, 0.f); + hb_draw_cubic_to (funcs, &draw_data, &st, 456.f, 0.f, 564.f, 122.f, 564.f, 331.f); + hb_draw_cubic_to (funcs, &draw_data, &st, 564.f, 539.f, 456.f, 656.f, 254.f, 656.f); + hb_draw_line_to (funcs, &draw_data, &st, 90.f, 656.f); + hb_draw_line_to (funcs, &draw_data, &st, 90.f, 0.f); + hb_draw_close_path (funcs, &draw_data, &st); + + char expected[] = "M90,0L258,0C456,0 564,122 564,331C564,539 456,656 254,656L90,656L90,0Z"; + g_assert_cmpmem (str, draw_data.consumed, expected, sizeof (expected) - 1); + } + + { + hb_draw_state_t st = HB_DRAW_STATE_DEFAULT; + draw_data.consumed = 0; + hb_draw_move_to (funcs, &draw_data, &st, 155.f, 624.f); + hb_draw_line_to (funcs, &draw_data, &st, 155.f, 84.f); + hb_draw_quadratic_to (funcs, &draw_data, &st, 150.f, 90.f, 146.f, 95.f); + hb_draw_quadratic_to (funcs, &draw_data, &st, 141.f, 99.f, 136.f, 105.f); + hb_draw_line_to (funcs, &draw_data, &st, 292.f, 105.f); + hb_draw_line_to (funcs, &draw_data, &st, 292.f, 0.f); + hb_draw_line_to (funcs, &draw_data, &st, 156.f, 0.f); + hb_draw_quadratic_to (funcs, &draw_data, &st, 128.f, 0.f, 104.f, 14.f); + hb_draw_quadratic_to (funcs, &draw_data, &st, 79.f, 27.f, 65.f, 51.f); + hb_draw_quadratic_to (funcs, &draw_data, &st, 50.f, 74.f, 50.f, 104.f); + hb_draw_line_to (funcs, &draw_data, &st, 50.f, 624.f); + hb_draw_line_to (funcs, &draw_data, &st, 155.f, 624.f); + hb_draw_close_path (funcs, &draw_data, &st); + + char expected[] = "M155,624L155,84Q150,90 146,95Q141,99 136,105" + "L292,105L292,0L156,0Q128,0 104,14Q79,27 65,51" + "Q50,74 50,104L50,624L155,624Z"; + g_assert_cmpmem (str, draw_data.consumed, expected, sizeof (expected) - 1); + } +} + static void test_hb_draw_immutable (void) { @@ -944,6 +992,7 @@ main (int argc, char **argv) hb_test_add (test_hb_draw_estedad_vf); if(0) hb_test_add (test_hb_draw_stroking); hb_test_add (test_hb_draw_immutable); + hb_test_add (test_hb_draw_drawing_fo_funcs); unsigned result = hb_test_run (); hb_draw_funcs_destroy (funcs);