#include "CppUnitTest.h" //#include "MainWindow.h" #include #include #include #include #include "Renderer/Painting/CubicBezier.h" #include #include #include using namespace Microsoft::VisualStudio::CppUnitTestFramework; namespace UnitTest { void messageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg) { switch (type) { case QtInfoMsg: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY); break; case QtDebugMsg: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); break; case QtWarningMsg: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN); break; case QtCriticalMsg: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE); break; case QtFatalMsg: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED); break; } Logger::WriteMessage(std::format("{}({},{}) {}\n", QString(context.file).splitRef("\\").back().toLocal8Bit().data(), context.line, QString(context.function).splitRef("(").first().split(" ").back().split(":").back().toLocal8Bit().data(), msg.toStdString()).c_str()); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); } TEST_CLASS(UnitTest) { public: //TEST_METHOD(TestMethod1) //{ // FRAMELESSHELPER_USE_NAMESPACE // FramelessHelper::Core::initialize(); // //QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); // char arg[] = ""; // char* argv[] = { arg }; // int argc = 1; // QApplication a(argc, argv); // FramelessHelper::Core::setApplicationOSThemeAware(); // FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur); // FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow); // FramelessConfig::instance()->set(Global::Option::CenterWindowBeforeShow); // MainWindow w; // w.show(); // a.exec(); //} }; TEST_CLASS(SvgLoaderTest) { public: TEST_METHOD(LoadSvg) { qInstallMessageHandler(messageHandler); QPainterPath painterPath; SvgFileLoader svgloader; svgloader.loadSvgFile("D:\\BigC\\Project\\ArchitectureColoredPainting\\svg\\test.svg", painterPath); } }; TEST_CLASS(CubicBezierTest) { public: TEST_METHOD(CubicIntegral) { qInstallMessageHandler(messageHandler); std::shared_ptr line(new Renderer::CubicBezier()); line->push_back({ -1, -1 }); line->push_back({ -1, 1 }); line->push_back({ 1, 1 }); line->push_back({ 1, -1 }); vector> outLines; line->monotonization(outLines); for (auto line : outLines) { qDebug() << line->getRate(); } } }; TEST_CLASS(ElementPoolTest) { private: char* argv[1]; int argc; public: ElementPoolTest() :argv{ (char*)"" }, argc(1) {} TEST_METHOD_INITIALIZE(initialize) { QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); } TEST_METHOD(ElementPool) { QApplication a(argc, argv); qInstallMessageHandler(messageHandler); ElementPoolWidget wi; //wi.setElementList({"1", "2", "3"}); wi.setFixedSize(QSize(600, 800)); wi.show(); a.exec(); } }; TEST_CLASS(PaintingUtilTest) { TEST_METHOD(TransfromTest) { qInstallMessageHandler(messageHandler); QPainterPath path; path.addRect(0, 0, 20, 20); QTransform trans; qDebug() << path.boundingRect(); //qDebug() << trans; //qDebug() << acos(-0.707107); glm::vec2 scale; float rotate; PaintingUtil::decomposeTransform(trans, rotate, scale); qDebug() << rotate; qDebug() << scale.x << scale.y; } }; }