/* ptrnt - print labels on linux Copyright (C) 2023 Moritz Martinius This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "graphics/Bitmap.hpp" #include #include TEST(basic_test, Bitmap_createBitmapWithCertainSize_yieldsSpecifiedSize) { auto bm = ptprnt::graphics::Bitmap(16, 8); auto width = bm.getWidth(); auto height = bm.getHeight(); ASSERT_EQ(width, 16); ASSERT_EQ(height, 8); } TEST(basic_test, Bitmap_getBitmapLineOutsideOfImage_yieldsNullopt) { auto bm = ptprnt::graphics::Bitmap(16, 8); // line 8 is out of bounds, count begins with 0 auto outOfBoundsLine = bm.getLine(8); ASSERT_EQ(std::nullopt, outOfBoundsLine); } TEST(basic_test, Bitmap_getBitmapLineInsideOfImage_yieldsValidLineSize) { auto bm = ptprnt::graphics::Bitmap(16, 8); auto line = bm.getLine(7); if (!line) { FAIL() << "Returned line is invalid"; } auto lineSize = line->size(); ASSERT_EQ(16, lineSize); } TEST(basic_test, Bitmap_getBitmapRowOutsideOfImage_yieldsNullopt) { auto bm = ptprnt::graphics::Bitmap(16, 8); // row 16 is out of bounds, count begins with 0 auto outOfBoundsRow = bm.getRow(16); ASSERT_EQ(std::nullopt, outOfBoundsRow); } TEST(basic_test, Bitmap_getBitmapRowInsideOfImage_yieldsValidRowSize) { auto bm = ptprnt::graphics::Bitmap(16, 8); auto row = bm.getRow(15); if (!row) { FAIL() << "Returned Row is invalid"; } auto rowSize = row->size(); ASSERT_EQ(8, rowSize); }