diff --git a/model/Db.cpp b/model/Db.cpp index 24f403a..e9efa15 100644 --- a/model/Db.cpp +++ b/model/Db.cpp @@ -231,14 +231,14 @@ namespace glabels { if ( !id.isNull() && !id.isEmpty() ) { - if ( id == "roll" ) - { - return tr("Roll"); - } - else + if ( id == "other" ) { return tr("Other"); } + else if ( id == "roll" ) + { + return tr("Roll"); + } const Paper *paper = lookupPaperFromId( id ); if ( paper != nullptr ) diff --git a/model/StrUtil.cpp b/model/StrUtil.cpp index 7545809..a5fe6c1 100644 --- a/model/StrUtil.cpp +++ b/model/StrUtil.cpp @@ -66,7 +66,7 @@ namespace glabels if ( denom[i] == 1.0 ) { /* Simple integer. */ - return QString().arg(x, 0, 'f', 0); + return QString("%1").arg(x, 0, 'f', 0); } auto n = int( x * denom[i] + 0.5 ); auto d = int( denom[i] ); diff --git a/model/unit_tests/CMakeLists.txt b/model/unit_tests/CMakeLists.txt index 5aca82b..3c1300d 100644 --- a/model/unit_tests/CMakeLists.txt +++ b/model/unit_tests/CMakeLists.txt @@ -96,4 +96,12 @@ if (Qt6Test_FOUND) target_link_libraries (TestVariables Model Qt6::Test) add_test (NAME Variables COMMAND TestVariables) + #======================================= + # Test StrUtil class + #======================================= + qt6_wrap_cpp (TestStrUtil_moc_sources TestStrUtil.h) + add_executable (TestStrUtil TestStrUtil.cpp ${TestStrUtil_moc_sources}) + target_link_libraries (TestStrUtil Model Qt6::Test) + add_test (NAME StrUtil COMMAND TestStrUtil) + endif (Qt6Test_FOUND) diff --git a/model/unit_tests/TestStrUtil.cpp b/model/unit_tests/TestStrUtil.cpp new file mode 100644 index 0000000..b40a551 --- /dev/null +++ b/model/unit_tests/TestStrUtil.cpp @@ -0,0 +1,54 @@ +/* TestColorNode.cpp + * + * Copyright (C) 2019 Jaye Evins + * + * This file is part of gLabels-qt. + * + * gLabels-qt 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. + * + * gLabels-qt 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 gLabels-qt. If not, see . + */ + +#include "TestStrUtil.h" + +#include "model/StrUtil.h" + +#include + + +QTEST_MAIN(TestStrUtil) + + +using namespace glabels::model; + + +void TestStrUtil::formatFraction() +{ + QCOMPARE( StrUtil::formatFraction( 3.5 ), QString( "3¹/₂" ) ); + QCOMPARE( StrUtil::formatFraction( 11.5 ), QString( "11¹/₂" ) ); + QCOMPARE( StrUtil::formatFraction( 0.5 ), QString( "¹/₂" ) ); + QCOMPARE( StrUtil::formatFraction( 1.25 ), QString( "1¹/₄" ) ); + QCOMPARE( StrUtil::formatFraction( 2.125 ), QString( "2¹/₈" ) ); + QCOMPARE( StrUtil::formatFraction( 2.875 ), QString( "2⁷/₈" ) ); + QCOMPARE( StrUtil::formatFraction( 3.875 ), QString( "3⁷/₈" ) ); + QCOMPARE( StrUtil::formatFraction( 4.0625 ), QString( "4¹/₁₆" ) ); + QCOMPARE( StrUtil::formatFraction( 5.3125 ), QString( "5⁵/₁₆" ) ); + QCOMPARE( StrUtil::formatFraction( 6.03125 ), QString( "6¹/₃₂" ) ); + QCOMPARE( StrUtil::formatFraction( 7.84375 ), QString( "7²⁷/₃₂" ) ); + + QCOMPARE( StrUtil::formatFraction( 0 ), QString( "0" ) ); + QCOMPARE( StrUtil::formatFraction( 2 ), QString( "2" ) ); + QCOMPARE( StrUtil::formatFraction( 3 ), QString( "3" ) ); + QCOMPARE( StrUtil::formatFraction( 11 ), QString( "11" ) ); + + QCOMPARE( StrUtil::formatFraction( 3.1415926 ), QString( "3.142" ) ); +} diff --git a/model/unit_tests/TestStrUtil.h b/model/unit_tests/TestStrUtil.h new file mode 100644 index 0000000..13183af --- /dev/null +++ b/model/unit_tests/TestStrUtil.h @@ -0,0 +1,30 @@ +/* TestColorNode.h + * + * Copyright (C) 2019 Jaye Evins + * + * This file is part of gLabels-qt. + * + * gLabels-qt 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. + * + * gLabels-qt 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 gLabels-qt. If not, see . + */ + +#include + + +class TestStrUtil : public QObject +{ + Q_OBJECT + +private slots: + void formatFraction(); +};