From d7d9f7bd9252102aa406f4383d700f36a4774a17 Mon Sep 17 00:00:00 2001 From: nick black Date: Tue, 24 Aug 2021 02:02:52 -0400 Subject: [PATCH] add BitmapMoveOffscreen unit test #1646 --- src/tests/bitmap.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/tests/bitmap.cpp b/src/tests/bitmap.cpp index e0651d2d8..357abc06a 100644 --- a/src/tests/bitmap.cpp +++ b/src/tests/bitmap.cpp @@ -665,5 +665,30 @@ TEST_CASE("Bitmaps") { } #endif + SUBCASE("BitmapMoveOffscreen") { + // first, assemble a visual equivalent to 2x2 cells + auto y = nc_->tcache.cellpixy * 2; + auto x = nc_->tcache.cellpixx * 2; + std::vector v(x * y * 4, htole(0xffccccff)); + auto ncv = ncvisual_from_rgba(v.data(), y, sizeof(decltype(v)::value_type) * x, x); + REQUIRE(nullptr != ncv); + struct ncvisual_options vopts = { + .n = nullptr, + .scaling = NCSCALE_NONE, + .y = 0, .x = 0, + .begy = 0, .begx = 0, + .leny = 0, .lenx = 0, + .blitter = NCBLIT_PIXEL, + .flags = NCVISUAL_OPTION_NODEGRADE, + .transcolor = 0, + }; + auto n = ncvisual_render(nc_, ncv, &vopts); + for(int i = 0 ; i <= ncplane_dim_y(n_) ; ++i){ + CHECK(0 == ncplane_move_yx(n, i, 0)); + CHECK(0 == notcurses_render(nc_)); + } + REQUIRE(nullptr != n); + } + CHECK(!notcurses_stop(nc_)); }