#include "CppUnitTest.h" #include "MainWindow.h" #include #include #include #include #include "Renderer/Painting/CubicBezier.h" #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(); } } }; }