#include <iostream> #include <string> #include <j/cppunit/cppunit.hpp> #include <j/cppunit/assert.hpp> #include <j/lang/errno.hpp> #include <j/io/term.hpp> using namespace j; using namespace j::lang; using namespace j::io; using namespace j::cppunit; class TermTest : public TestCase { public: TermTest() {} ~TermTest() {} void setUp() {} void tearDown() {} void testUp() { std::string_view value = Term::Cursor::UP(1); assertEquals("\x1b[1A", value.data()); } void testDown() { std::string_view value = Term::Cursor::DOWN(123); assertEquals("\x1b[123B", value.data()); } void testRight() { std::string_view value = Term::Cursor::RIGHT(23); assertEquals("\x1b[23C", value.data()); } void testLeft() { std::string_view value = Term::Cursor::LEFT(5); assertEquals("\x1b[5D", value.data()); } void testDownLine() { std::string_view value = Term::Cursor::DOWN_LINE(3); assertEquals("\x1b[3E", value.data()); } void testUpLine() { std::string_view value = Term::Cursor::UP_LINE(345); assertEquals("\x1b[345F", value.data()); } void testCol() { std::string_view value = Term::Cursor::COL(99); assertEquals("\x1b[99G", value.data()); } void testMove() { std::string_view value = Term::Cursor::MOVE(10, 30); assertEquals("\x1b[10;30H", value.data()); } void testScroll() { std::string_view value = Term::Cursor::SCROLL(130); assertEquals("\x1b[130S", value.data()); } void testScrollR() { std::string_view value = Term::Cursor::SCROLL_R(7); assertEquals("\x1b[7T", value.data()); } void suite() { RUN_TEST("term test UP", testUp); RUN_TEST("term test DOWN", testDown); RUN_TEST("term test RIGHT", testRight); RUN_TEST("term test LEFT", testLeft); RUN_TEST("term test DOWN_LINE", testDownLine); RUN_TEST("term test UP_LINE", testUpLine); RUN_TEST("term test COL", testCol); RUN_TEST("term test MOVE", testMove); RUN_TEST("term test SCROLL", testScroll); RUN_TEST("term test SCROLL_R", testScrollR); } };