Little_hobbit

Lab3 QT test

May 7th, 2021 (edited)
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5. #include <QtTest>
  6.  
  7. #include "markettask.h"
  8.  
  9. using namespace std;
  10.  
  11. class LabUnitTests : public QObject
  12. {
  13.     Q_OBJECT
  14.  
  15. public:
  16.     LabUnitTests()
  17.     {
  18.         testcasefile.open("test_input.txt");
  19.         ethalon.open("test_ethalon.txt");
  20.  
  21.         if (!testcasefile.is_open() || !ethalon.is_open())
  22.             qDebug() << "Files doesn't open";
  23.     }
  24.  
  25.     ~LabUnitTests()
  26.     {
  27.         testcasefile.close();
  28.         ethalon.close();
  29.     }
  30.  
  31. private slots:
  32.  
  33.     void test_border_data()
  34.     {
  35.         initTestCase("border", 3);
  36.     }
  37.  
  38.     void test_border()
  39.     {
  40.         QFETCH(int, n);
  41.         QFETCH(int, k);
  42.         QFETCH(long long, result);
  43.         QCOMPARE(stepsToMarket(n, k), result);
  44.     }
  45.  
  46.     void test_ordinary_data()
  47.     {
  48.         initTestCase("ordinary", 1);
  49.     }
  50.  
  51.     void test_ordinary()
  52.     {
  53.         QFETCH(int, n);
  54.         QFETCH(int, k);
  55.         QFETCH(long long, result);
  56.         QCOMPARE(stepsToMarket(n, k), result);
  57.     }
  58.  
  59.     void test_invalid_input_data()
  60.     {
  61.         initTestCase("invalid", 6);
  62.     }
  63.  
  64.     void test_invalid_input()
  65.     {
  66.         QFETCH(int, n);
  67.         QFETCH(int, k);
  68.         QFETCH(long long, result);
  69.         QCOMPARE(stepsToMarket(n, k), result);
  70.     }
  71.  
  72. private:
  73.     void initTestCase(string name, int count)
  74.     {
  75.         string prefix = name + "_";
  76.         QTest::addColumn<int>("n");
  77.         QTest::addColumn<int>("k");
  78.         QTest::addColumn<long long>("result");
  79.  
  80.         int n, k;
  81.         long long res;
  82.         for (int i = 0; i < count; i++) {
  83.             testcasefile >> n >> k >> res;
  84.  
  85.             string rowName = prefix + to_string(i + 1);
  86.             QTest::newRow(rowName.c_str()) << n << k << res;
  87.         }
  88.     }
  89.  
  90.     ifstream testcasefile;
  91.     ifstream ethalon;
  92. };
  93.  
  94. QTEST_APPLESS_MAIN(LabUnitTests)
  95.  
  96. #include "tst_labunittests.moc"
  97.  
Add Comment
Please, Sign In to add comment