From c6dcdab6c6f8590771e90b2dc8515343d7d33e84 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Wed, 11 Sep 2019 11:56:38 +0200 Subject: add test --- tests/dice/tst_dice.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/dice/tst_dice.cpp b/tests/dice/tst_dice.cpp index a35f918..b02dc65 100644 --- a/tests/dice/tst_dice.cpp +++ b/tests/dice/tst_dice.cpp @@ -466,15 +466,25 @@ void TestDice::dangerousCommandsTest_data() // QTest::addRow("cmd5") << "10d10g10"; } -void makeResult(DiceResult& result, const QVector& values, int base= 1, int max= 10) +void makeResult(DiceResult& result, const QVector& values, const QVector& subvalues= QVector(), + int base= 1, int max= 10) { + int i= 0; for(int val : values) { auto die= new Die(); die->setBase(base); die->setMaxValue(max); die->insertRollValue(val); + if(i == 0 && !subvalues.empty()) + { + for(int sval : subvalues) + { + die->insertRollValue(sval); + } + } result.insertResult(die); + ++i; } } @@ -597,6 +607,7 @@ void TestDice::countTest() QFETCH(QVector, values); QFETCH(int, condition); QFETCH(int, score); + QFETCH(QVector, subvalues); TestNode node; CountExecuteNode countN; @@ -608,7 +619,7 @@ void TestDice::countTest() node.setResult(&result); node.setNextNode(&countN); - makeResult(result, values); + makeResult(result, values, subvalues); node.run(nullptr); @@ -622,9 +633,11 @@ void TestDice::countTest_data() QTest::addColumn>("values"); QTest::addColumn("condition"); QTest::addColumn("score"); + QTest::addColumn>("subvalues"); - QTest::addRow("cmd1") << QVector({10, 9, 2}) << 3 << 2; - QTest::addRow("cmd2") << QVector({1, 2, 3}) << 3 << 0; + QTest::addRow("cmd1") << QVector({10, 9, 2}) << 3 << 2 << QVector(); + QTest::addRow("cmd2") << QVector({1, 2, 3}) << 3 << 0 << QVector(); + QTest::addRow("cmd3") << QVector({10, 7, 4}) << 7 << 3 << QVector({10, 10, 2}); } void TestDice::rerollTest() @@ -725,7 +738,7 @@ void TestDice::rerollUntilTest() RerollDiceNode reroll(false, false); DiceResult result; - makeResult(result, values, 0); + makeResult(result, values, QVector(), 0); node.setResult(&result); auto validator= makeValidator(condition, BooleanCondition::Equal); -- cgit v1.2.3-70-g09d2