/
DemienMedich
/
BodyweightBase
Обзор
Документация
Войти
/
DemienMedich
/
BodyweightBase
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/exercise_catalog_tests.cpp
62 строки
2 KB
DemienMedich
Add configurable exercise frame playback
18 июл 2026, 04:25
18 июл 2026, 04:25
da929ca
Код
Авторство
О чём код?
#include "bodyweight/exercise_catalog.h" #include <QtTest> class ExerciseCatalogTests : public QObject { Q_OBJECT private slots: void importsCatalog(); void rejectsUnsupportedSchema(); }; void ExerciseCatalogTests::importsCatalog() { const bodyweight::ExerciseCatalogResult result = bodyweight::importExerciseCatalog(R"({ "schemaVersion": 1, "libraryVersion": "test", "exercises": [{ "id": "hold", "name": "Hold", "category": "Core", "equipment": "Floor", "description": "Static hold", "primaryCue": "Brace", "secondaryCue": "Breathe", "loadRecommendation": "Add time slowly", "availabilityNote": "Always available", "metric": "seconds", "defaultTarget": 30, "defaultRestSeconds": 10, "frameDurationMs": 900, "framePlayback": "pingPong", "frameDurationsMs": [700, 1300], "alternatingSides": true }] })"); QVERIFY2(result.ok, qPrintable(result.error)); QCOMPARE(result.exercises.size(), 1); QCOMPARE(result.exercises.first().metric, bodyweight::ExerciseMetric::seconds); QCOMPARE(result.exercises.first().category, QString("Core")); QCOMPARE(result.exercises.first().equipment, QString("Floor")); QCOMPARE(result.exercises.first().description, QString("Static hold")); QCOMPARE(result.exercises.first().primaryCue, QString("Brace")); QCOMPARE(result.exercises.first().secondaryCue, QString("Breathe")); QCOMPARE(result.exercises.first().loadRecommendation, QString("Add time slowly")); QCOMPARE(result.exercises.first().availabilityNote, QString("Always available")); QCOMPARE(result.exercises.first().frameDurationMs, 900); QCOMPARE(result.exercises.first().framePlayback, QString("pingPong")); QCOMPARE(result.exercises.first().frameDurationsMs, QVector<int>({700, 1300})); QVERIFY(result.exercises.first().alternatingSides); } void ExerciseCatalogTests::rejectsUnsupportedSchema() { const bodyweight::ExerciseCatalogResult result = bodyweight::importExerciseCatalog(R"({"schemaVersion": 2, "exercises": []})"); QVERIFY(!result.ok); } QTEST_MAIN(ExerciseCatalogTests) #include "exercise_catalog_tests.moc"