diff options
| author | 2021-05-15 06:12:55 +0200 | |
|---|---|---|
| committer | 2021-05-15 06:12:55 +0200 | |
| commit | f7782a8dffe60e2ee5698bc54443dcb54e8f9a42 (patch) | |
| tree | 3609a6e65e06e8488f3972f8c38e6c484463bf98 | |
| parent | ae8b7dc596f7498dbf8153c735d096ae194acf51 (diff) | |
| download | OneRoll-f7782a8dffe60e2ee5698bc54443dcb54e8f9a42.tar.gz OneRoll-f7782a8dffe60e2ee5698bc54443dcb54e8f9a42.zip | |
add test about variable on k operator
| -rw-r--r-- | tests/dice/tst_dice.cpp | 53 |
1 files changed, 43 insertions, 10 deletions
diff --git a/tests/dice/tst_dice.cpp b/tests/dice/tst_dice.cpp index 999f85b..a3f0980 100644 --- a/tests/dice/tst_dice.cpp +++ b/tests/dice/tst_dice.cpp @@ -202,6 +202,9 @@ private slots: void switchCaseTest(); void switchCaseTest_data(); + void deterministTest(); + void deterministTest_data(); + private: std::unique_ptr<Die> m_die; std::unique_ptr<DiceParser> m_diceParser; @@ -344,7 +347,8 @@ void TestDice::commandsTest_data() QTest::addRow("cmd48") << "10D10c[<2|>7]"; QTest::addRow("cmd49") << "10D6c[=2|=4|=6]"; QTest::addRow("cmd50") << "10D10e[=1|=10]k4"; - QTest::addRow("cmd51") << "1L[tete,bras droit,bras gauche,jambe droite,jambe gauche,ventre[6..7],buste[8..10]]"; + QTest::addRow("cmd51") << "1L[tete,bras droit,bras gauche,jambe droite,jambe " + "gauche,ventre[6..7],buste[8..10]]"; QTest::addRow("cmd52") << "10+10s"; QTest::addRow("cmd53") << "1d6e6;1d4e4mk1"; QTest::addRow("cmd54") << "1d6e6;1d4e4mk1"; @@ -360,7 +364,8 @@ void TestDice::commandsTest_data() QTest::addRow("cmd64") << "4d6e6i[=4]{-4}+2"; QTest::addRow("cmd65") << "4d6e6f[!=4]+2"; QTest::addRow("cmd66") << "5d10g10"; - QTest::addRow("cmd67") << "4d6p[4:blue]c[>=4];1d6p[1:#FFFFFF]c6-@c1;1d6p[1:#FF0000]c[>=4]+@c6-@c1"; + QTest::addRow("cmd67") << "4d6p[4:blue]c[>=4];1d6p[1:#FFFFFF]c6-@c1;1d6p[1:#" + "FF0000]c[>=4]+@c6-@c1"; QTest::addRow("cmd68") << "10d[0..9]"; QTest::addRow("cmd69") << "1d8e8;1d6e6mk1+2"; QTest::addRow("cmd70") << "3d100g50"; @@ -614,7 +619,7 @@ void TestDice::keepTest() TestNode node; KeepDiceExecNode keepN; - NumberNode* numberNode = new NumberNode(); + NumberNode* numberNode= new NumberNode(); numberNode->setNumber(keep); keepN.setDiceKeepNumber(numberNode); @@ -997,7 +1002,8 @@ void TestDice::ifTest_data() QTest::addRow("cmd9") << QVector<int>({25, 8, 14}) << onScalar << 1 << "False"; QTest::addRow("cmd10") << QVector<int>({25, 8, 14}) << onScalar << 47 << "True"; - // QTest::addRow("cmd11") << QVector<int>({25, 8, 14}) << onEachValue << 47 << "True"; + // QTest::addRow("cmd11") << QVector<int>({25, 8, 14}) << onEachValue << 47 << + // "True"; } void TestDice::paintTest() {} @@ -1180,15 +1186,16 @@ void TestDice::ifCommandTest_data() QTest::addColumn<QList<int>>("level"); QTest::addColumn<QStringList>("startExperted"); - QTest::addRow("cmd1") << "2d10i:[>=15]{\"Complete Success: %1 [%2]\"}{i:[>=10]{\"Success with Complications: %1 " + QTest::addRow("cmd1") << "2d10i:[>=15]{\"Complete Success: %1 " + "[%2]\"}{i:[>=10]{\"Success with Complications: %1 " + "[%2]\"}{\"Failure: %1 [%2]\"}}" + << BooleanCondition::GreaterOrEqual << QList<int>({15, 10, 1}) + << QStringList({"Complete Success:", "Success with Complications:", "Failure:"}); + QTest::addRow("cmd2") << "2d10;$1i:[>=15]{\"Complete Success: %1 [%2]\"}{$1i:[>=10]{\"Success " + "with Complications: %1 " "[%2]\"}{\"Failure: %1 [%2]\"}}" << BooleanCondition::GreaterOrEqual << QList<int>({15, 10, 1}) << QStringList({"Complete Success:", "Success with Complications:", "Failure:"}); - QTest::addRow("cmd2") - << "2d10;$1i:[>=15]{\"Complete Success: %1 [%2]\"}{$1i:[>=10]{\"Success with Complications: %1 " - "[%2]\"}{\"Failure: %1 [%2]\"}}" - << BooleanCondition::GreaterOrEqual << QList<int>({15, 10, 1}) - << QStringList({"Complete Success:", "Success with Complications:", "Failure:"}); } void TestDice::operatoionConditionValidatorTest() @@ -1296,6 +1303,32 @@ void TestDice::switchCaseTest_data() << QList<int>{1, 2, 3, 4} << QStringList{"a", "b", "c", "d"} << QStringLiteral("c") << true; } +void TestDice::deterministTest() +{ + QFETCH(QString, command); + QFETCH(QList<qreal>, results); + + auto parsing= m_diceParser->parseLine(command); + QVERIFY2(parsing, "parsing"); + m_diceParser->start(); + QVERIFY2(m_diceParser->humanReadableError().isEmpty(), "no error"); + QVERIFY2(m_diceParser->humanReadableWarning().isEmpty(), "no warning"); + + auto resultCmd= m_diceParser->scalarResultsFromEachInstruction(); + QCOMPARE(results, resultCmd); +} + +void TestDice::deterministTest_data() +{ + QTest::addColumn<QString>("command"); + QTest::addColumn<QList<qreal>>("results"); + + QTest::addRow("cmd1") << "10;20;10+20;5-3;[$1,$2,$3]k$4" << QList<qreal>{10, 20, 30, 2, 50}; + QTest::addRow("cmd2") << "6;[10,7,8,4,4,3,2,2,1]k$1" << QList<qreal>{6, 36}; + + // 1d6;10d10e10k\$1 +} + void TestDice::cleanupTestCase() {} QTEST_MAIN(TestDice) |