2015-10-15 12:41:42 +02:00
|
|
|
/************************************************************************
|
|
|
|
**
|
|
|
|
** @file tst_qmutokenparser.cpp
|
|
|
|
** @author Roman Telezhynskyi <dismine(at)gmail.com>
|
|
|
|
** @date 15 10, 2015
|
|
|
|
**
|
|
|
|
** @brief
|
|
|
|
** @copyright
|
|
|
|
** This source code is part of the Valentine project, a pattern making
|
|
|
|
** program, whose allow create and modeling patterns of clothing.
|
|
|
|
** Copyright (C) 2015 Valentina project
|
|
|
|
** <https://bitbucket.org/dismine/valentina> All Rights Reserved.
|
|
|
|
**
|
|
|
|
** Valentina is free software: you can redistribute it and/or modify
|
|
|
|
** it under the terms of the GNU General Public License as published by
|
|
|
|
** the Free Software Foundation, either version 3 of the License, or
|
|
|
|
** (at your option) any later version.
|
|
|
|
**
|
|
|
|
** Valentina is distributed in the hope that it will be useful,
|
|
|
|
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
** GNU General Public License for more details.
|
|
|
|
**
|
|
|
|
** You should have received a copy of the GNU General Public License
|
|
|
|
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
**
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
|
|
#include "tst_qmutokenparser.h"
|
|
|
|
#include "../qmuparser/qmutokenparser.h"
|
|
|
|
|
|
|
|
#include <QtTest>
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------------------------------
|
|
|
|
TST_QmuTokenParser::TST_QmuTokenParser(QObject *parent)
|
|
|
|
:QObject(parent)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------------------------------
|
|
|
|
void TST_QmuTokenParser::IsSingle_data()
|
|
|
|
{
|
|
|
|
QTest::addColumn<QString>("formula");
|
|
|
|
QTest::addColumn<bool>("result");
|
|
|
|
|
|
|
|
QTest::newRow("Single value") << "15.5" << true;
|
|
|
|
QTest::newRow("Two digits") << "2+2" << false;
|
|
|
|
QTest::newRow("Negative single value") << "-2" << true;
|
|
|
|
QTest::newRow("Digit and variable") << "2+a" << false;
|
|
|
|
QTest::newRow("One variable twice") << "a+a" << false;
|
|
|
|
QTest::newRow("Two variables") << "a+b" << false;
|
2015-10-15 14:37:10 +02:00
|
|
|
QTest::newRow("Empty string") << "" << false;
|
|
|
|
QTest::newRow("Several spaces") << " " << false;
|
|
|
|
QTest::newRow("Invalid formula") << "2*)))" << false;
|
2016-02-26 18:44:51 +01:00
|
|
|
QTest::newRow("Incorrect thousand separator 15 500") << "15 500" << false;
|
|
|
|
QTest::newRow("Correct C locale 15500") << "15500" << true;
|
|
|
|
QTest::newRow("Correct C locale 15,500") << "15,500" << true;
|
|
|
|
QTest::newRow("Correct C locale 15,500.1") << "15,500.1" << true;
|
|
|
|
QTest::newRow("Not C locale 15,5") << "15,5" << false;
|
|
|
|
QTest::newRow("Not C locale 15.500,1") << "15.500,1" << false;
|
2015-10-15 12:41:42 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------------------------------
|
|
|
|
void TST_QmuTokenParser::IsSingle()
|
|
|
|
{
|
|
|
|
QFETCH(QString, formula);
|
|
|
|
QFETCH(bool, result);
|
|
|
|
|
|
|
|
QCOMPARE(qmu::QmuTokenParser::IsSingle(formula), result);
|
|
|
|
}
|