From 445f9e5f717bf1ad9b764704b320bbec237a7682 Mon Sep 17 00:00:00 2001
From: flow <flowlnlnln@gmail.com>
Date: Fri, 20 Jan 2023 11:11:35 -0300
Subject: feat+fix(Version): make comparsion FlexVer-compatible

... and fixes a minor issue in the parsing.

This changes the expected behavior of Versions in one significant way:
Now, Versions like 1.2 or 1.5 evaluate to LESS THAN 1.2.0 and 1.5.0
respectively. This makes sense for sorting versions, since one expects
the versions without patch release to 'contain' the ones with, so the
ones without should be evaluated uniformily with the ones with the
patch.

Signed-off-by: flow <flowlnlnln@gmail.com>
---
 tests/Version_test.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

(limited to 'tests/Version_test.cpp')

diff --git a/tests/Version_test.cpp b/tests/Version_test.cpp
index bb0a7f5a..afb4c610 100644
--- a/tests/Version_test.cpp
+++ b/tests/Version_test.cpp
@@ -33,24 +33,24 @@ class VersionTest : public QObject {
         addDataColumns();
 
         QTest::newRow("equal, explicit") << "1.2.0" << "1.2.0" << false << true;
-        QTest::newRow("equal, implicit 1") << "1.2" << "1.2.0" << false << true;
-        QTest::newRow("equal, implicit 2") << "1.2.0" << "1.2" << false << true;
         QTest::newRow("equal, two-digit") << "1.42" << "1.42" << false << true;
 
         QTest::newRow("lessThan, explicit 1") << "1.2.0" << "1.2.1" << true << false;
         QTest::newRow("lessThan, explicit 2") << "1.2.0" << "1.3.0" << true << false;
         QTest::newRow("lessThan, explicit 3") << "1.2.0" << "2.2.0" << true << false;
-        QTest::newRow("lessThan, implicit 1") << "1.2" << "1.2.1" << true << false;
-        QTest::newRow("lessThan, implicit 2") << "1.2" << "1.3.0" << true << false;
-        QTest::newRow("lessThan, implicit 3") << "1.2" << "2.2.0" << true << false;
+        QTest::newRow("lessThan, implicit 1") << "1.2" << "1.2.0" << true << false;
+        QTest::newRow("lessThan, implicit 2") << "1.2" << "1.2.1" << true << false;
+        QTest::newRow("lessThan, implicit 3") << "1.2" << "1.3.0" << true << false;
+        QTest::newRow("lessThan, implicit 4") << "1.2" << "2.2.0" << true << false;
         QTest::newRow("lessThan, two-digit") << "1.41" << "1.42" << true << false;
 
         QTest::newRow("greaterThan, explicit 1") << "1.2.1" << "1.2.0" << false << false;
         QTest::newRow("greaterThan, explicit 2") << "1.3.0" << "1.2.0" << false << false;
         QTest::newRow("greaterThan, explicit 3") << "2.2.0" << "1.2.0" << false << false;
-        QTest::newRow("greaterThan, implicit 1") << "1.2.1" << "1.2" << false << false;
-        QTest::newRow("greaterThan, implicit 2") << "1.3.0" << "1.2" << false << false;
-        QTest::newRow("greaterThan, implicit 3") << "2.2.0" << "1.2" << false << false;
+        QTest::newRow("greaterThan, implicit 1") << "1.2.0" << "1.2" << false << false;
+        QTest::newRow("greaterThan, implicit 2") << "1.2.1" << "1.2" << false << false;
+        QTest::newRow("greaterThan, implicit 3") << "1.3.0" << "1.2" << false << false;
+        QTest::newRow("greaterThan, implicit 4") << "2.2.0" << "1.2" << false << false;
         QTest::newRow("greaterThan, two-digit") << "1.42" << "1.41" << false << false;
     }
 
-- 
cgit