From 7fa8f958362238ca087e56f339e01a50506c3393 Mon Sep 17 00:00:00 2001 From: Andrew Nesbitt Date: Wed, 19 Aug 2026 08:53:35 +0100 Subject: [PATCH] Harvest univers conformance fixtures --- Makefile | 5 +- advisory_test.go | 36 + testdata/local/data/npm_advisory.json | 5312 +++++ testdata/local/provenance.json | 32 + testdata/local/skip.json | 13 +- .../tests/alpm_univers_version_cmp_test.json | 1043 + .../tests/apk_univers_version_cmp_test.json | 19319 ++++++++++++++++ .../local/tests/conan_univers_range_test.json | 595 + .../tests/conan_univers_version_cmp_test.json | 1128 + .../tests/deb_univers_version_cmp_test.json | 547 + .../gentoo_univers_version_cmp_test.json | 531 + .../tests/rpm_univers_version_cmp_test.json | 1034 + tools/diff-univers/main.go | 327 + tools/diff-univers/main_test.go | 100 + tools/harvest/main.go | 35 + tools/harvest/univers.go | 379 + tools/harvest/univers_test.go | 129 + 17 files changed, 30563 insertions(+), 2 deletions(-) create mode 100644 advisory_test.go create mode 100644 testdata/local/data/npm_advisory.json create mode 100644 testdata/local/tests/alpm_univers_version_cmp_test.json create mode 100644 testdata/local/tests/apk_univers_version_cmp_test.json create mode 100644 testdata/local/tests/conan_univers_range_test.json create mode 100644 testdata/local/tests/conan_univers_version_cmp_test.json create mode 100644 testdata/local/tests/deb_univers_version_cmp_test.json create mode 100644 testdata/local/tests/gentoo_univers_version_cmp_test.json create mode 100644 testdata/local/tests/rpm_univers_version_cmp_test.json create mode 100644 tools/diff-univers/main.go create mode 100644 tools/diff-univers/main_test.go create mode 100644 tools/harvest/univers.go create mode 100644 tools/harvest/univers_test.go diff --git a/Makefile b/Makefile index 805885b..02d53a2 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,7 @@ -.PHONY: harvest +.PHONY: diff-univers harvest + +diff-univers: + go run ./tools/diff-univers $(DIFF_UNIVERS_ARGS) harvest: go run ./tools/harvest $(HARVEST_ARGS) diff --git a/advisory_test.go b/advisory_test.go new file mode 100644 index 0000000..2a0069a --- /dev/null +++ b/advisory_test.go @@ -0,0 +1,36 @@ +package vers + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + "testing" +) + +type npmAdvisoryRange struct { + TestIndex int `json:"test_index"` + Native string `json:"npm_native"` +} + +func TestNPMAdvisoryRangesParse(t *testing.T) { + filename := filepath.Join("testdata", "local", "data", "npm_advisory.json") + data, err := os.ReadFile(filename) + if err != nil { + t.Fatalf("read %s: %v", filename, err) + } + var ranges []npmAdvisoryRange + if err := json.Unmarshal(data, &ranges); err != nil { + t.Fatalf("parse %s: %v", filename, err) + } + if len(ranges) == 0 { + t.Fatalf("%s contains no ranges", filename) + } + for _, advisoryRange := range ranges { + t.Run(fmt.Sprintf("%04d", advisoryRange.TestIndex), func(t *testing.T) { + if _, err := ParseNative(advisoryRange.Native, schemeNPM); err != nil { + t.Errorf("ParseNative(%q, npm): %v", advisoryRange.Native, err) + } + }) + } +} diff --git a/testdata/local/data/npm_advisory.json b/testdata/local/data/npm_advisory.json new file mode 100644 index 0000000..3ae55a1 --- /dev/null +++ b/testdata/local/data/npm_advisory.json @@ -0,0 +1,5312 @@ +[ + { + "test_index": 1, + "scheme": "npm", + "npm_native": ">=4.1.0", + "expected_vers": "vers:npm/>=4.1.0" + }, + { + "test_index": 2, + "scheme": "npm", + "npm_native": ">=2.0.0 <=4.0.4", + "expected_vers": "vers:npm/>=2.0.0|<=4.0.4" + }, + { + "test_index": 3, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 4, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 5, + "scheme": "npm", + "npm_native": ">=2.11.2", + "expected_vers": "vers:npm/>=2.11.2" + }, + { + "test_index": 6, + "scheme": "npm", + "npm_native": "<2.11.2", + "expected_vers": "vers:npm/<2.11.2" + }, + { + "test_index": 7, + "scheme": "npm", + "npm_native": "<=0.6.2", + "expected_vers": "vers:npm/<=0.6.2" + }, + { + "test_index": 8, + "scheme": "npm", + "npm_native": ">=0.9.0", + "expected_vers": "vers:npm/>=0.9.0" + }, + { + "test_index": 9, + "scheme": "npm", + "npm_native": "<=0.8.4", + "expected_vers": "vers:npm/<=0.8.4" + }, + { + "test_index": 10, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 11, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 12, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 13, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 14, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 15, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 16, + "scheme": "npm", + "npm_native": ">= 1.6.9", + "expected_vers": "vers:npm/>=1.6.9" + }, + { + "test_index": 17, + "scheme": "npm", + "npm_native": "<= 1.6.8", + "expected_vers": "vers:npm/<=1.6.8" + }, + { + "test_index": 18, + "scheme": "npm", + "npm_native": "<=3.9.2", + "expected_vers": "vers:npm/<=3.9.2" + }, + { + "test_index": 19, + "scheme": "npm", + "npm_native": ">=9.1.6", + "expected_vers": "vers:npm/>=9.1.6" + }, + { + "test_index": 20, + "scheme": "npm", + "npm_native": "<=9.1.5", + "expected_vers": "vers:npm/<=9.1.5" + }, + { + "test_index": 21, + "scheme": "npm", + "npm_native": ">=1.0.0", + "expected_vers": "vers:npm/>=1.0.0" + }, + { + "test_index": 22, + "scheme": "npm", + "npm_native": "<=0.5.0", + "expected_vers": "vers:npm/<=0.5.0" + }, + { + "test_index": 23, + "scheme": "npm", + "npm_native": ">=1.8.10", + "expected_vers": "vers:npm/>=1.8.10" + }, + { + "test_index": 24, + "scheme": "npm", + "npm_native": "<1.8.10", + "expected_vers": "vers:npm/<1.8.10" + }, + { + "test_index": 25, + "scheme": "npm", + "npm_native": ">=1.4.1", + "expected_vers": "vers:npm/>=1.4.1" + }, + { + "test_index": 26, + "scheme": "npm", + "npm_native": "<=1.4.0", + "expected_vers": "vers:npm/<=1.4.0" + }, + { + "test_index": 27, + "scheme": "npm", + "npm_native": ">= 16.1.1", + "expected_vers": "vers:npm/>=16.1.1" + }, + { + "test_index": 28, + "scheme": "npm", + "npm_native": ">= 15.0.0 <= 16.1.0", + "expected_vers": "vers:npm/>=15.0.0|<=16.1.0" + }, + { + "test_index": 29, + "scheme": "npm", + "npm_native": ">0.12.7", + "expected_vers": "vers:npm/>0.12.7" + }, + { + "test_index": 30, + "scheme": "npm", + "npm_native": "<=0.12.7", + "expected_vers": "vers:npm/<=0.12.7" + }, + { + "test_index": 31, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 32, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 33, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 34, + "scheme": "npm", + "npm_native": ">=2.1.5", + "expected_vers": "vers:npm/>=2.1.5" + }, + { + "test_index": 35, + "scheme": "npm", + "npm_native": "2.1.4", + "expected_vers": "vers:npm/2.1.4" + }, + { + "test_index": 36, + "scheme": "npm", + "npm_native": ">=1.0.0", + "expected_vers": "vers:npm/>=1.0.0" + }, + { + "test_index": 37, + "scheme": "npm", + "npm_native": "<1.0.0", + "expected_vers": "vers:npm/<1.0.0" + }, + { + "test_index": 38, + "scheme": "npm", + "npm_native": ">= 6.1.0", + "expected_vers": "vers:npm/>=6.1.0" + }, + { + "test_index": 39, + "scheme": "npm", + "npm_native": "< 6.1.0", + "expected_vers": "vers:npm/<6.1.0" + }, + { + "test_index": 40, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 41, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 42, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 43, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 44, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 45, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 46, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 47, + "scheme": "npm", + "npm_native": ">=1.4.0", + "expected_vers": "vers:npm/>=1.4.0" + }, + { + "test_index": 48, + "scheme": "npm", + "npm_native": "<1.4.0", + "expected_vers": "vers:npm/<1.4.0" + }, + { + "test_index": 49, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 50, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 51, + "scheme": "npm", + "npm_native": ">= 3.0.0", + "expected_vers": "vers:npm/>=3.0.0" + }, + { + "test_index": 52, + "scheme": "npm", + "npm_native": "<= 2.1.3", + "expected_vers": "vers:npm/<=2.1.3" + }, + { + "test_index": 53, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 54, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 55, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 56, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 57, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 58, + "scheme": "npm", + "npm_native": "<=0.0.5", + "expected_vers": "vers:npm/<=0.0.5" + }, + { + "test_index": 59, + "scheme": "npm", + "npm_native": ">=3.4.0", + "expected_vers": "vers:npm/>=3.4.0" + }, + { + "test_index": 60, + "scheme": "npm", + "npm_native": "<3.4.0", + "expected_vers": "vers:npm/<3.4.0" + }, + { + "test_index": 61, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 62, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 63, + "scheme": "npm", + "npm_native": ">=3.0.2", + "expected_vers": "vers:npm/>=3.0.2" + }, + { + "test_index": 64, + "scheme": "npm", + "npm_native": ">= 2.0.1 <3.0.2", + "expected_vers": "vers:npm/>=2.0.1|<3.0.2" + }, + { + "test_index": 65, + "scheme": "npm", + "npm_native": "<=2.0.2", + "expected_vers": "vers:npm/<=2.0.2" + }, + { + "test_index": 66, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 67, + "scheme": "npm", + "npm_native": "<99.999.9999", + "expected_vers": "vers:npm/<99.999.9999" + }, + { + "test_index": 68, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 69, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 70, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 71, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 72, + "scheme": "npm", + "npm_native": ">= 1.0.4", + "expected_vers": "vers:npm/>=1.0.4" + }, + { + "test_index": 73, + "scheme": "npm", + "npm_native": "<= 1.0.3", + "expected_vers": "vers:npm/<=1.0.3" + }, + { + "test_index": 74, + "scheme": "npm", + "npm_native": ">=1.5.2 || >=1.4.11 <1.5.0 || >=1.3.2 <1.4.0", + "expected_vers": "vers:npm/>=1.3.2|<1.4.0|>=1.4.11|<1.5.0|>=1.5.2" + }, + { + "test_index": 75, + "scheme": "npm", + "npm_native": ">=1.3.0 <1.3.2 || >=1.4.0 <1.4.11 || >=1.5.0 <1.5.2", + "expected_vers": "vers:npm/>=1.3.0|<1.3.2|>=1.4.0|<1.4.11|>=1.5.0|<1.5.2" + }, + { + "test_index": 76, + "scheme": "npm", + "npm_native": ">=2.1.3", + "expected_vers": "vers:npm/>=2.1.3" + }, + { + "test_index": 77, + "scheme": "npm", + "npm_native": "<=2.1.2", + "expected_vers": "vers:npm/<=2.1.2" + }, + { + "test_index": 78, + "scheme": "npm", + "npm_native": "<=3.2.0", + "expected_vers": "vers:npm/<=3.2.0" + }, + { + "test_index": 79, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 80, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 81, + "scheme": "npm", + "npm_native": ">=1.0.0", + "expected_vers": "vers:npm/>=1.0.0" + }, + { + "test_index": 82, + "scheme": "npm", + "npm_native": "<1.0.0", + "expected_vers": "vers:npm/<1.0.0" + }, + { + "test_index": 83, + "scheme": "npm", + "npm_native": ">=0.7.0", + "expected_vers": "vers:npm/>=0.7.0" + }, + { + "test_index": 84, + "scheme": "npm", + "npm_native": "<=0.6.6", + "expected_vers": "vers:npm/<=0.6.6" + }, + { + "test_index": 85, + "scheme": "npm", + "npm_native": ">=1.0.6", + "expected_vers": "vers:npm/>=1.0.6" + }, + { + "test_index": 86, + "scheme": "npm", + "npm_native": "<=1.0.5", + "expected_vers": "vers:npm/<=1.0.5" + }, + { + "test_index": 87, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 88, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 89, + "scheme": "npm", + "npm_native": ">=3.0.2", + "expected_vers": "vers:npm/>=3.0.2" + }, + { + "test_index": 90, + "scheme": "npm", + "npm_native": "<=3.0.1", + "expected_vers": "vers:npm/<=3.0.1" + }, + { + "test_index": 91, + "scheme": "npm", + "npm_native": ">= 1.1", + "expected_vers": "vers:npm/>=1.1.0" + }, + { + "test_index": 92, + "scheme": "npm", + "npm_native": "<= 1.0", + "expected_vers": "vers:npm/<=1.0.0" + }, + { + "test_index": 93, + "scheme": "npm", + "npm_native": ">=2.0.0", + "expected_vers": "vers:npm/>=2.0.0" + }, + { + "test_index": 94, + "scheme": "npm", + "npm_native": "<2.0.0", + "expected_vers": "vers:npm/<2.0.0" + }, + { + "test_index": 95, + "scheme": "npm", + "npm_native": "<=0.2.3", + "expected_vers": "vers:npm/<=0.2.3" + }, + { + "test_index": 96, + "scheme": "npm", + "npm_native": ">=3.0.0", + "expected_vers": "vers:npm/>=3.0.0" + }, + { + "test_index": 97, + "scheme": "npm", + "npm_native": "<3.0.0", + "expected_vers": "vers:npm/<3.0.0" + }, + { + "test_index": 98, + "scheme": "npm", + "npm_native": ">=2.15.0", + "expected_vers": "vers:npm/>=2.15.0" + }, + { + "test_index": 99, + "scheme": "npm", + "npm_native": ">=2.0.0", + "expected_vers": "vers:npm/>=2.0.0" + }, + { + "test_index": 100, + "scheme": "npm", + "npm_native": ">=0.4.7", + "expected_vers": "vers:npm/>=0.4.7" + }, + { + "test_index": 101, + "scheme": "npm", + "npm_native": "<0.4.7", + "expected_vers": "vers:npm/<0.4.7" + }, + { + "test_index": 102, + "scheme": "npm", + "npm_native": ">= 1.1.1", + "expected_vers": "vers:npm/>=1.1.1" + }, + { + "test_index": 103, + "scheme": "npm", + "npm_native": "< 1.1.1", + "expected_vers": "vers:npm/<1.1.1" + }, + { + "test_index": 104, + "scheme": "npm", + "npm_native": "<=0.0.1", + "expected_vers": "vers:npm/<=0.0.1" + }, + { + "test_index": 105, + "scheme": "npm", + "npm_native": ">=1.3.1", + "expected_vers": "vers:npm/>=1.3.1" + }, + { + "test_index": 106, + "scheme": "npm", + "npm_native": "<=1.3.0", + "expected_vers": "vers:npm/<=1.3.0" + }, + { + "test_index": 107, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 108, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 109, + "scheme": "npm", + "npm_native": ">=2.0.0", + "expected_vers": "vers:npm/>=2.0.0" + }, + { + "test_index": 110, + "scheme": "npm", + "npm_native": "<=1.0.5", + "expected_vers": "vers:npm/<=1.0.5" + }, + { + "test_index": 111, + "scheme": "npm", + "npm_native": ">=1.2.5", + "expected_vers": "vers:npm/>=1.2.5" + }, + { + "test_index": 112, + "scheme": "npm", + "npm_native": "<=1.2.4", + "expected_vers": "vers:npm/<=1.2.4" + }, + { + "test_index": 113, + "scheme": "npm", + "npm_native": ">=0.9.3", + "expected_vers": "vers:npm/>=0.9.3" + }, + { + "test_index": 114, + "scheme": "npm", + "npm_native": "<0.9.3", + "expected_vers": "vers:npm/<0.9.3" + }, + { + "test_index": 115, + "scheme": "npm", + "npm_native": ">= 0.5.0", + "expected_vers": "vers:npm/>=0.5.0" + }, + { + "test_index": 116, + "scheme": "npm", + "npm_native": "<= 0.3.3", + "expected_vers": "vers:npm/<=0.3.3" + }, + { + "test_index": 117, + "scheme": "npm", + "npm_native": ">= 1.0.1", + "expected_vers": "vers:npm/>=1.0.1" + }, + { + "test_index": 118, + "scheme": "npm", + "npm_native": "<= 1.0.0", + "expected_vers": "vers:npm/<=1.0.0" + }, + { + "test_index": 119, + "scheme": "npm", + "npm_native": ">=1.9.1", + "expected_vers": "vers:npm/>=1.9.1" + }, + { + "test_index": 120, + "scheme": "npm", + "npm_native": "<1.9.1", + "expected_vers": "vers:npm/<1.9.1" + }, + { + "test_index": 121, + "scheme": "npm", + "npm_native": "<=0.30.0", + "expected_vers": "vers:npm/<=0.30.0" + }, + { + "test_index": 122, + "scheme": "npm", + "npm_native": ">=v2.0.0-alpha8", + "expected_vers": "vers:npm/>=2.0.0-alpha8" + }, + { + "test_index": 123, + "scheme": "npm", + "npm_native": "<=v2.0.0-alpha7", + "expected_vers": "vers:npm/<=2.0.0-alpha7" + }, + { + "test_index": 124, + "scheme": "npm", + "npm_native": ">=1.3.5", + "expected_vers": "vers:npm/>=1.3.5" + }, + { + "test_index": 125, + "scheme": "npm", + "npm_native": "<1.3.5", + "expected_vers": "vers:npm/<1.3.5" + }, + { + "test_index": 126, + "scheme": "npm", + "npm_native": ">=4.6.0", + "expected_vers": "vers:npm/>=4.6.0" + }, + { + "test_index": 127, + "scheme": "npm", + "npm_native": "<4.6.0", + "expected_vers": "vers:npm/<4.6.0" + }, + { + "test_index": 128, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 129, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 130, + "scheme": "npm", + "npm_native": ">= 2.4.24", + "expected_vers": "vers:npm/>=2.4.24" + }, + { + "test_index": 131, + "scheme": "npm", + "npm_native": "<= 2.4.23", + "expected_vers": "vers:npm/<=2.4.23" + }, + { + "test_index": 132, + "scheme": "npm", + "npm_native": ">=1.12.0", + "expected_vers": "vers:npm/>=1.12.0" + }, + { + "test_index": 133, + "scheme": "npm", + "npm_native": "<=1.11.4", + "expected_vers": "vers:npm/<=1.11.4" + }, + { + "test_index": 134, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 135, + "scheme": "npm", + "npm_native": "<=0.5.0", + "expected_vers": "vers:npm/<=0.5.0" + }, + { + "test_index": 136, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 137, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 138, + "scheme": "npm", + "npm_native": ">=1.1.7", + "expected_vers": "vers:npm/>=1.1.7" + }, + { + "test_index": 139, + "scheme": "npm", + "npm_native": "<=1.1.6", + "expected_vers": "vers:npm/<=1.1.6" + }, + { + "test_index": 140, + "scheme": "npm", + "npm_native": ">=4.0.0", + "expected_vers": "vers:npm/>=4.0.0" + }, + { + "test_index": 141, + "scheme": "npm", + "npm_native": "<4.0.0", + "expected_vers": "vers:npm/<4.0.0" + }, + { + "test_index": 142, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 143, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 144, + "scheme": "npm", + "npm_native": ">=0.4.4", + "expected_vers": "vers:npm/>=0.4.4" + }, + { + "test_index": 145, + "scheme": "npm", + "npm_native": "<0.4.4", + "expected_vers": "vers:npm/<0.4.4" + }, + { + "test_index": 146, + "scheme": "npm", + "npm_native": ">= 2.3.3", + "expected_vers": "vers:npm/>=2.3.3" + }, + { + "test_index": 147, + "scheme": "npm", + "npm_native": "< 2.3.3", + "expected_vers": "vers:npm/<2.3.3" + }, + { + "test_index": 148, + "scheme": "npm", + "npm_native": ">=3.0.1", + "expected_vers": "vers:npm/>=3.0.1" + }, + { + "test_index": 149, + "scheme": "npm", + "npm_native": "<3.0.1", + "expected_vers": "vers:npm/<3.0.1" + }, + { + "test_index": 150, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 151, + "scheme": "npm", + "npm_native": "<99.999.9999", + "expected_vers": "vers:npm/<99.999.9999" + }, + { + "test_index": 152, + "scheme": "npm", + "npm_native": ">=0.4.1", + "expected_vers": "vers:npm/>=0.4.1" + }, + { + "test_index": 153, + "scheme": "npm", + "npm_native": "<=0.4.0", + "expected_vers": "vers:npm/<=0.4.0" + }, + { + "test_index": 154, + "scheme": "npm", + "npm_native": "<=0.4.0", + "expected_vers": "vers:npm/<=0.4.0" + }, + { + "test_index": 155, + "scheme": "npm", + "npm_native": ">=2.0.1", + "expected_vers": "vers:npm/>=2.0.1" + }, + { + "test_index": 156, + "scheme": "npm", + "npm_native": "<=2.0.0", + "expected_vers": "vers:npm/<=2.0.0" + }, + { + "test_index": 157, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 158, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 159, + "scheme": "npm", + "npm_native": ">=2.9.4", + "expected_vers": "vers:npm/>=2.9.4" + }, + { + "test_index": 160, + "scheme": "npm", + "npm_native": "<2.9.4", + "expected_vers": "vers:npm/<2.9.4" + }, + { + "test_index": 161, + "scheme": "npm", + "npm_native": "~1.6.5 || >=1.7.2", + "expected_vers": "vers:npm/>=1.6.5|<1.7.0|>=1.7.2" + }, + { + "test_index": 162, + "scheme": "npm", + "npm_native": "<1.6.5 || >=1.7.0 <1.7.2", + "expected_vers": "vers:npm/<1.6.5|>=1.7.0|<1.7.2" + }, + { + "test_index": 163, + "scheme": "npm", + "npm_native": ">=1.5.2", + "expected_vers": "vers:npm/>=1.5.2" + }, + { + "test_index": 164, + "scheme": "npm", + "npm_native": "<=1.5.1", + "expected_vers": "vers:npm/<=1.5.1" + }, + { + "test_index": 165, + "scheme": "npm", + "npm_native": ">=1.0.0", + "expected_vers": "vers:npm/>=1.0.0" + }, + { + "test_index": 166, + "scheme": "npm", + "npm_native": "<1.0.0", + "expected_vers": "vers:npm/<1.0.0" + }, + { + "test_index": 167, + "scheme": "npm", + "npm_native": "<=0.0.6", + "expected_vers": "vers:npm/<=0.0.6" + }, + { + "test_index": 168, + "scheme": "npm", + "npm_native": ">= 2.0.5", + "expected_vers": "vers:npm/>=2.0.5" + }, + { + "test_index": 169, + "scheme": "npm", + "npm_native": "< 2.0.5", + "expected_vers": "vers:npm/<2.0.5" + }, + { + "test_index": 170, + "scheme": "npm", + "npm_native": ">=1.3.3", + "expected_vers": "vers:npm/>=1.3.3" + }, + { + "test_index": 171, + "scheme": "npm", + "npm_native": "<1.3.3", + "expected_vers": "vers:npm/<1.3.3" + }, + { + "test_index": 172, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 173, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 174, + "scheme": "npm", + "npm_native": ">=0.1.6", + "expected_vers": "vers:npm/>=0.1.6" + }, + { + "test_index": 175, + "scheme": "npm", + "npm_native": "<0.1.6", + "expected_vers": "vers:npm/<0.1.6" + }, + { + "test_index": 176, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 177, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 178, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 179, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 180, + "scheme": "npm", + "npm_native": ">=1.10.3", + "expected_vers": "vers:npm/>=1.10.3" + }, + { + "test_index": 181, + "scheme": "npm", + "npm_native": "<=1.10.2", + "expected_vers": "vers:npm/<=1.10.2" + }, + { + "test_index": 182, + "scheme": "npm", + "npm_native": ">=4.17.5", + "expected_vers": "vers:npm/>=4.17.5" + }, + { + "test_index": 183, + "scheme": "npm", + "npm_native": "<4.17.5", + "expected_vers": "vers:npm/<4.17.5" + }, + { + "test_index": 184, + "scheme": "npm", + "npm_native": ">=1.5.0", + "expected_vers": "vers:npm/>=1.5.0" + }, + { + "test_index": 185, + "scheme": "npm", + "npm_native": "<1.5.0", + "expected_vers": "vers:npm/<1.5.0" + }, + { + "test_index": 186, + "scheme": "npm", + "npm_native": ">=0.5.0", + "expected_vers": "vers:npm/>=0.5.0" + }, + { + "test_index": 187, + "scheme": "npm", + "npm_native": "<0.5.0", + "expected_vers": "vers:npm/<0.5.0" + }, + { + "test_index": 188, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 189, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 190, + "scheme": "npm", + "npm_native": ">=2.1.1", + "expected_vers": "vers:npm/>=2.1.1" + }, + { + "test_index": 191, + "scheme": "npm", + "npm_native": "<2.1.1", + "expected_vers": "vers:npm/<2.1.1" + }, + { + "test_index": 192, + "scheme": "npm", + "npm_native": ">=1.6.1", + "expected_vers": "vers:npm/>=1.6.1" + }, + { + "test_index": 193, + "scheme": "npm", + "npm_native": "<1.6.1", + "expected_vers": "vers:npm/<1.6.1" + }, + { + "test_index": 194, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 195, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 196, + "scheme": "npm", + "npm_native": ">=3.0.0", + "expected_vers": "vers:npm/>=3.0.0" + }, + { + "test_index": 197, + "scheme": "npm", + "npm_native": "<=2.1.1", + "expected_vers": "vers:npm/<=2.1.1" + }, + { + "test_index": 198, + "scheme": "npm", + "npm_native": ">=3.5.1 <4.0.0 || >=4.1.3 <5.0.0 || >=5.6.1 <6.0.0 || >=6.1.2", + "expected_vers": "vers:npm/>=3.5.1|<4.0.0|>=4.1.3|<5.0.0|>=5.6.1|<6.0.0|>=6.1.2" + }, + { + "test_index": 199, + "scheme": "npm", + "npm_native": "<3.5.1 || >=4.0.0 <4.1.3 || >=5.0.0 <5.6.1 || >=6.0.0 <6.1.2", + "expected_vers": "vers:npm/<3.5.1|>=4.0.0|<4.1.3|>=5.0.0|<5.6.1|>=6.0.0|<6.1.2" + }, + { + "test_index": 200, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 201, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 202, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 203, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 204, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 205, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 206, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 207, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 208, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 209, + "scheme": "npm", + "npm_native": ">=1.0.2", + "expected_vers": "vers:npm/>=1.0.2" + }, + { + "test_index": 210, + "scheme": "npm", + "npm_native": "<1.0.2", + "expected_vers": "vers:npm/<1.0.2" + }, + { + "test_index": 211, + "scheme": "npm", + "npm_native": ">=0.2.3", + "expected_vers": "vers:npm/>=0.2.3" + }, + { + "test_index": 212, + "scheme": "npm", + "npm_native": "<0.2.3", + "expected_vers": "vers:npm/<0.2.3" + }, + { + "test_index": 213, + "scheme": "npm", + "npm_native": ">=2.5.0 <= 3.0.0 || >=3.1.0", + "expected_vers": "vers:npm/>=2.5.0|<=3.0.0|>=3.1.0" + }, + { + "test_index": 214, + "scheme": "npm", + "npm_native": "<= 2.4.2 || >= 3.0.0 <=3.0.1", + "expected_vers": "vers:npm/<=2.4.2|>=3.0.0|<=3.0.1" + }, + { + "test_index": 215, + "scheme": "npm", + "npm_native": "<=0.2.1", + "expected_vers": "vers:npm/<=0.2.1" + }, + { + "test_index": 216, + "scheme": "npm", + "npm_native": ">= 1.4.0", + "expected_vers": "vers:npm/>=1.4.0" + }, + { + "test_index": 217, + "scheme": "npm", + "npm_native": "<=1.3.0", + "expected_vers": "vers:npm/<=1.3.0" + }, + { + "test_index": 218, + "scheme": "npm", + "npm_native": ">=2.1.0", + "expected_vers": "vers:npm/>=2.1.0" + }, + { + "test_index": 219, + "scheme": "npm", + "npm_native": "2.1.0-M1 || 2.1.0-M2", + "expected_vers": "vers:npm/2.1.0-M1|2.1.0-M2" + }, + { + "test_index": 220, + "scheme": "npm", + "npm_native": "<=0.3.0", + "expected_vers": "vers:npm/<=0.3.0" + }, + { + "test_index": 221, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 222, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 223, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 224, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 225, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 226, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 227, + "scheme": "npm", + "npm_native": ">=3.0.0", + "expected_vers": "vers:npm/>=3.0.0" + }, + { + "test_index": 228, + "scheme": "npm", + "npm_native": "<=2.0.0", + "expected_vers": "vers:npm/<=2.0.0" + }, + { + "test_index": 229, + "scheme": "npm", + "npm_native": ">=2.8.1", + "expected_vers": "vers:npm/>=2.8.1" + }, + { + "test_index": 230, + "scheme": "npm", + "npm_native": "<=2.8.0", + "expected_vers": "vers:npm/<=2.8.0" + }, + { + "test_index": 231, + "scheme": "npm", + "npm_native": ">=1.4.4", + "expected_vers": "vers:npm/>=1.4.4" + }, + { + "test_index": 232, + "scheme": "npm", + "npm_native": "<1.4.4", + "expected_vers": "vers:npm/<1.4.4" + }, + { + "test_index": 233, + "scheme": "npm", + "npm_native": ">=4.2.2", + "expected_vers": "vers:npm/>=4.2.2" + }, + { + "test_index": 234, + "scheme": "npm", + "npm_native": "<4.2.2", + "expected_vers": "vers:npm/<4.2.2" + }, + { + "test_index": 235, + "scheme": "npm", + "npm_native": ">=2.6.0", + "expected_vers": "vers:npm/>=2.6.0" + }, + { + "test_index": 236, + "scheme": "npm", + "npm_native": "<2.6.0", + "expected_vers": "vers:npm/<2.6.0" + }, + { + "test_index": 237, + "scheme": "npm", + "npm_native": ">=4.3.6 || >=3.8.39 <4.0.0", + "expected_vers": "vers:npm/>=3.8.39|<4.0.0|>=4.3.6" + }, + { + "test_index": 238, + "scheme": "npm", + "npm_native": ">=3.5.5 <=3.8.38 || >=4.0.0 <=4.3.5", + "expected_vers": "vers:npm/>=3.5.5|<=3.8.38|>=4.0.0|<=4.3.5" + }, + { + "test_index": 239, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 240, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 241, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 242, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 243, + "scheme": "npm", + "npm_native": ">= 0.8.4", + "expected_vers": "vers:npm/>=0.8.4" + }, + { + "test_index": 244, + "scheme": "npm", + "npm_native": "< 0.8.4", + "expected_vers": "vers:npm/<0.8.4" + }, + { + "test_index": 245, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 246, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 247, + "scheme": "npm", + "npm_native": ">=1.6.5 <2.0.0 || >= 2.1.7", + "expected_vers": "vers:npm/>=1.6.5|<2.0.0|>=2.1.7" + }, + { + "test_index": 248, + "scheme": "npm", + "npm_native": "<1.6.5 || < 2.1.7 > 2.0.0", + "expected_vers": "vers:npm/<1.6.5|>2.0.0|<2.1.7" + }, + { + "test_index": 249, + "scheme": "npm", + "npm_native": ">= 1.7.0-alpha3", + "expected_vers": "vers:npm/>=1.7.0-alpha3" + }, + { + "test_index": 250, + "scheme": "npm", + "npm_native": "<= 1.7.0-alpha2", + "expected_vers": "vers:npm/<=1.7.0-alpha2" + }, + { + "test_index": 251, + "scheme": "npm", + "npm_native": ">=3.1.11", + "expected_vers": "vers:npm/>=3.1.11" + }, + { + "test_index": 252, + "scheme": "npm", + "npm_native": "<=3.1.10", + "expected_vers": "vers:npm/<=3.1.10" + }, + { + "test_index": 253, + "scheme": "npm", + "npm_native": ">=1.0.29", + "expected_vers": "vers:npm/>=1.0.29" + }, + { + "test_index": 254, + "scheme": "npm", + "npm_native": "<1.0.29", + "expected_vers": "vers:npm/<1.0.29" + }, + { + "test_index": 255, + "scheme": "npm", + "npm_native": ">=0.0.3", + "expected_vers": "vers:npm/>=0.0.3" + }, + { + "test_index": 256, + "scheme": "npm", + "npm_native": "<=0.0.2", + "expected_vers": "vers:npm/<=0.0.2" + }, + { + "test_index": 257, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 258, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 259, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 260, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 261, + "scheme": "npm", + "npm_native": "> 0.9.6", + "expected_vers": "vers:npm/>0.9.6" + }, + { + "test_index": 262, + "scheme": "npm", + "npm_native": ">= 0.2.0 <= 0.9.6 || ~0.8.0-pre", + "expected_vers": "vers:npm/>=0.2.0|>=0.8.0-pre|<0.8.0|>=0.8.0|<0.8.1|<=0.9.6" + }, + { + "test_index": 263, + "scheme": "npm", + "npm_native": ">= 1.0.4", + "expected_vers": "vers:npm/>=1.0.4" + }, + { + "test_index": 264, + "scheme": "npm", + "npm_native": "<= 1.0.3", + "expected_vers": "vers:npm/<=1.0.3" + }, + { + "test_index": 265, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 266, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 267, + "scheme": "npm", + "npm_native": ">=2.0.0", + "expected_vers": "vers:npm/>=2.0.0" + }, + { + "test_index": 268, + "scheme": "npm", + "npm_native": "<2.0.0", + "expected_vers": "vers:npm/<2.0.0" + }, + { + "test_index": 269, + "scheme": "npm", + "npm_native": "<=0.2.0", + "expected_vers": "vers:npm/<=0.2.0" + }, + { + "test_index": 270, + "scheme": "npm", + "npm_native": ">=1.21.1", + "expected_vers": "vers:npm/>=1.21.1" + }, + { + "test_index": 271, + "scheme": "npm", + "npm_native": "<=1.20.0", + "expected_vers": "vers:npm/<=1.20.0" + }, + { + "test_index": 272, + "scheme": "npm", + "npm_native": ">=2.2.3", + "expected_vers": "vers:npm/>=2.2.3" + }, + { + "test_index": 273, + "scheme": "npm", + "npm_native": "<2.2.3", + "expected_vers": "vers:npm/<2.2.3" + }, + { + "test_index": 274, + "scheme": "npm", + "npm_native": ">=0.1.1", + "expected_vers": "vers:npm/>=0.1.1" + }, + { + "test_index": 275, + "scheme": "npm", + "npm_native": "<0.1.1", + "expected_vers": "vers:npm/<0.1.1" + }, + { + "test_index": 276, + "scheme": "npm", + "npm_native": ">= 2.2.x", + "expected_vers": "vers:npm/>=2.2.0|<2.3.0" + }, + { + "test_index": 277, + "scheme": "npm", + "npm_native": "2.0.x || 2.1.x", + "expected_vers": "vers:npm/>=2.0.0|<2.1.0|>=2.1.0|<2.2.0" + }, + { + "test_index": 278, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 279, + "scheme": "npm", + "npm_native": ">=2.2.1", + "expected_vers": "vers:npm/>=2.2.1" + }, + { + "test_index": 280, + "scheme": "npm", + "npm_native": "<2.2.1", + "expected_vers": "vers:npm/<2.2.1" + }, + { + "test_index": 281, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 282, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 283, + "scheme": "npm", + "npm_native": ">=2.1.5", + "expected_vers": "vers:npm/>=2.1.5" + }, + { + "test_index": 284, + "scheme": "npm", + "npm_native": "2.1.4", + "expected_vers": "vers:npm/2.1.4" + }, + { + "test_index": 285, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 286, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 287, + "scheme": "npm", + "npm_native": ">=3.0.0", + "expected_vers": "vers:npm/>=3.0.0" + }, + { + "test_index": 288, + "scheme": "npm", + "npm_native": "=3.0.0-rc.1", + "expected_vers": "vers:npm/3.0.0-rc.1" + }, + { + "test_index": 289, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 290, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 291, + "scheme": "npm", + "npm_native": ">=0.4.0", + "expected_vers": "vers:npm/>=0.4.0" + }, + { + "test_index": 292, + "scheme": "npm", + "npm_native": "<=0.3.8", + "expected_vers": "vers:npm/<=0.3.8" + }, + { + "test_index": 293, + "scheme": "npm", + "npm_native": ">=0.0.6", + "expected_vers": "vers:npm/>=0.0.6" + }, + { + "test_index": 294, + "scheme": "npm", + "npm_native": "<=0.0.5", + "expected_vers": "vers:npm/<=0.0.5" + }, + { + "test_index": 295, + "scheme": "npm", + "npm_native": ">=2.8.1", + "expected_vers": "vers:npm/>=2.8.1" + }, + { + "test_index": 296, + "scheme": "npm", + "npm_native": "<2.8.1", + "expected_vers": "vers:npm/<2.8.1" + }, + { + "test_index": 297, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 298, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 299, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 300, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 301, + "scheme": "npm", + "npm_native": ">=0.1.1", + "expected_vers": "vers:npm/>=0.1.1" + }, + { + "test_index": 302, + "scheme": "npm", + "npm_native": "<0.1.1", + "expected_vers": "vers:npm/<0.1.1" + }, + { + "test_index": 303, + "scheme": "npm", + "npm_native": "<=0.29.0", + "expected_vers": "vers:npm/<=0.29.0" + }, + { + "test_index": 304, + "scheme": "npm", + "npm_native": ">=7.0.0", + "expected_vers": "vers:npm/>=7.0.0" + }, + { + "test_index": 305, + "scheme": "npm", + "npm_native": "<=6.5.3", + "expected_vers": "vers:npm/<=6.5.3" + }, + { + "test_index": 306, + "scheme": "npm", + "npm_native": ">=0.8.13", + "expected_vers": "vers:npm/>=0.8.13" + }, + { + "test_index": 307, + "scheme": "npm", + "npm_native": "<0.8.13", + "expected_vers": "vers:npm/<0.8.13" + }, + { + "test_index": 308, + "scheme": "npm", + "npm_native": "^2.0.18 || ^3.0.16 || ^3.1.6 || ^4.0.8 || ^5.0.0-beta.5", + "expected_vers": "vers:npm/>=2.0.18|<3.0.0|>=3.0.16|>=3.1.6|<4.0.0|<4.0.0|>=4.0.8|>=5.0.0-beta.5|<5.0.0|<6.0.0" + }, + { + "test_index": 309, + "scheme": "npm", + "npm_native": "<2.0.18 || <3.0.16 || <3.1.6 || <4.0.8 || <5.0.0-beta.5", + "expected_vers": "vers:npm/<2.0.18|<3.0.16|<3.1.6|<4.0.8|<5.0.0-beta.5" + }, + { + "test_index": 310, + "scheme": "npm", + "npm_native": ">=3.0.0-beta.7 || >=2.0.8 <3.0.0-beta.1 || >=1.8.8 <2.0.0 || >=1.7.16 <1.8.0", + "expected_vers": "vers:npm/>=1.7.16|<1.8.0|>=1.8.8|<2.0.0|>=2.0.8|<3.0.0-beta.1|>=3.0.0-beta.7" + }, + { + "test_index": 311, + "scheme": "npm", + "npm_native": ">=1.7.0 <1.7.16 || >=1.8.0 <1.8.8 || >=2.0.0 <2.0.8 || >=3.0.0-beta.1 <3.0.0-beta.7", + "expected_vers": "vers:npm/>=1.7.0|<1.7.16|>=1.8.0|<1.8.8|>=2.0.0|<2.0.8|>=3.0.0-beta.1|<3.0.0-beta.7" + }, + { + "test_index": 312, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 313, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 314, + "scheme": "npm", + "npm_native": ">=1.0.1", + "expected_vers": "vers:npm/>=1.0.1" + }, + { + "test_index": 315, + "scheme": "npm", + "npm_native": "<1.0.1", + "expected_vers": "vers:npm/<1.0.1" + }, + { + "test_index": 316, + "scheme": "npm", + "npm_native": ">=0.2.4", + "expected_vers": "vers:npm/>=0.2.4" + }, + { + "test_index": 317, + "scheme": "npm", + "npm_native": "<0.2.4", + "expected_vers": "vers:npm/<0.2.4" + }, + { + "test_index": 318, + "scheme": "npm", + "npm_native": ">=1.0.0", + "expected_vers": "vers:npm/>=1.0.0" + }, + { + "test_index": 319, + "scheme": "npm", + "npm_native": "<=0.3.13", + "expected_vers": "vers:npm/<=0.3.13" + }, + { + "test_index": 320, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 321, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 322, + "scheme": "npm", + "npm_native": "7.0.0", + "expected_vers": "vers:npm/7.0.0" + }, + { + "test_index": 323, + "scheme": "npm", + "npm_native": "<= 6.5.3", + "expected_vers": "vers:npm/<=6.5.3" + }, + { + "test_index": 324, + "scheme": "npm", + "npm_native": ">=9.0.0", + "expected_vers": "vers:npm/>=9.0.0" + }, + { + "test_index": 325, + "scheme": "npm", + "npm_native": "<9.0.0", + "expected_vers": "vers:npm/<9.0.0" + }, + { + "test_index": 326, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 327, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 328, + "scheme": "npm", + "npm_native": ">=2.0.1", + "expected_vers": "vers:npm/>=2.0.1" + }, + { + "test_index": 329, + "scheme": "npm", + "npm_native": "<2.0.1", + "expected_vers": "vers:npm/<2.0.1" + }, + { + "test_index": 330, + "scheme": "npm", + "npm_native": ">=1.1.2", + "expected_vers": "vers:npm/>=1.1.2" + }, + { + "test_index": 331, + "scheme": "npm", + "npm_native": ">=1.1.0 <=1.1.1", + "expected_vers": "vers:npm/>=1.1.0|<=1.1.1" + }, + { + "test_index": 332, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 333, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 334, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 335, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 336, + "scheme": "npm", + "npm_native": ">= 0.0.6", + "expected_vers": "vers:npm/>=0.0.6" + }, + { + "test_index": 337, + "scheme": "npm", + "npm_native": "<= 0.0.5", + "expected_vers": "vers:npm/<=0.0.5" + }, + { + "test_index": 338, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 339, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 340, + "scheme": "npm", + "npm_native": "> 0.0.1", + "expected_vers": "vers:npm/>0.0.1" + }, + { + "test_index": 341, + "scheme": "npm", + "npm_native": "<= 0.0.1", + "expected_vers": "vers:npm/<=0.0.1" + }, + { + "test_index": 342, + "scheme": "npm", + "npm_native": ">3.0.0", + "expected_vers": "vers:npm/>3.0.0" + }, + { + "test_index": 343, + "scheme": "npm", + "npm_native": "<=3.0.0", + "expected_vers": "vers:npm/<=3.0.0" + }, + { + "test_index": 344, + "scheme": "npm", + "npm_native": "<=0.78.0", + "expected_vers": "vers:npm/<=0.78.0" + }, + { + "test_index": 345, + "scheme": "npm", + "npm_native": ">=1.4.3", + "expected_vers": "vers:npm/>=1.4.3" + }, + { + "test_index": 346, + "scheme": "npm", + "npm_native": "<1.4.3", + "expected_vers": "vers:npm/<1.4.3" + }, + { + "test_index": 347, + "scheme": "npm", + "npm_native": ">=2.1.0", + "expected_vers": "vers:npm/>=2.1.0" + }, + { + "test_index": 348, + "scheme": "npm", + "npm_native": "<=2.0.9", + "expected_vers": "vers:npm/<=2.0.9" + }, + { + "test_index": 349, + "scheme": "npm", + "npm_native": ">=1.4.0", + "expected_vers": "vers:npm/>=1.4.0" + }, + { + "test_index": 350, + "scheme": "npm", + "npm_native": "<1.4.0", + "expected_vers": "vers:npm/<1.4.0" + }, + { + "test_index": 351, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 352, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 353, + "scheme": "npm", + "npm_native": ">=0.5.1", + "expected_vers": "vers:npm/>=0.5.1" + }, + { + "test_index": 354, + "scheme": "npm", + "npm_native": "<0.5.1", + "expected_vers": "vers:npm/<0.5.1" + }, + { + "test_index": 355, + "scheme": "npm", + "npm_native": ">=1.6.6 <2.0.0 || >= 2.2.4", + "expected_vers": "vers:npm/>=1.6.6|<2.0.0|>=2.2.4" + }, + { + "test_index": 356, + "scheme": "npm", + "npm_native": "<1.6.6 || < 2.2.4 > 2.0.0", + "expected_vers": "vers:npm/<1.6.6|>2.0.0|<2.2.4" + }, + { + "test_index": 357, + "scheme": "npm", + "npm_native": ">= 2.15.1 <= 3.0.0 || >= 3.8.3", + "expected_vers": "vers:npm/>=2.15.1|<=3.0.0|>=3.8.3" + }, + { + "test_index": 358, + "scheme": "npm", + "npm_native": "<= 2.15.0 || >= 3.0.0 <= 3.8.2", + "expected_vers": "vers:npm/<=2.15.0|>=3.0.0|<=3.8.2" + }, + { + "test_index": 359, + "scheme": "npm", + "npm_native": ">=2.25.1", + "expected_vers": "vers:npm/>=2.25.1" + }, + { + "test_index": 360, + "scheme": "npm", + "npm_native": "<2.25.1", + "expected_vers": "vers:npm/<2.25.1" + }, + { + "test_index": 361, + "scheme": "npm", + "npm_native": ">=2.2.18", + "expected_vers": "vers:npm/>=2.2.18" + }, + { + "test_index": 362, + "scheme": "npm", + "npm_native": "<=2.2.17", + "expected_vers": "vers:npm/<=2.2.17" + }, + { + "test_index": 363, + "scheme": "npm", + "npm_native": "<=3.0.5", + "expected_vers": "vers:npm/<=3.0.5" + }, + { + "test_index": 364, + "scheme": "npm", + "npm_native": "<=1.1.0", + "expected_vers": "vers:npm/<=1.1.0" + }, + { + "test_index": 365, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 366, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 367, + "scheme": "npm", + "npm_native": ">=1.4.1", + "expected_vers": "vers:npm/>=1.4.1" + }, + { + "test_index": 368, + "scheme": "npm", + "npm_native": "<1.4.1", + "expected_vers": "vers:npm/<1.4.1" + }, + { + "test_index": 369, + "scheme": "npm", + "npm_native": ">=11.1.3", + "expected_vers": "vers:npm/>=11.1.3" + }, + { + "test_index": 370, + "scheme": "npm", + "npm_native": "<11.1.3", + "expected_vers": "vers:npm/<11.1.3" + }, + { + "test_index": 371, + "scheme": "npm", + "npm_native": ">=1.1.1", + "expected_vers": "vers:npm/>=1.1.1" + }, + { + "test_index": 372, + "scheme": "npm", + "npm_native": "<=1.1.0", + "expected_vers": "vers:npm/<=1.1.0" + }, + { + "test_index": 373, + "scheme": "npm", + "npm_native": ">=1.11.4", + "expected_vers": "vers:npm/>=1.11.4" + }, + { + "test_index": 374, + "scheme": "npm", + "npm_native": "<=1.11.1", + "expected_vers": "vers:npm/<=1.11.1" + }, + { + "test_index": 375, + "scheme": "npm", + "npm_native": ">=2.3.1", + "expected_vers": "vers:npm/>=2.3.1" + }, + { + "test_index": 376, + "scheme": "npm", + "npm_native": "<2.3.1", + "expected_vers": "vers:npm/<2.3.1" + }, + { + "test_index": 377, + "scheme": "npm", + "npm_native": ">=3.0.0", + "expected_vers": "vers:npm/>=3.0.0" + }, + { + "test_index": 378, + "scheme": "npm", + "npm_native": ">=1.4.0 <=1.11.3 || >=1.12.3 <=2.2.4", + "expected_vers": "vers:npm/>=1.4.0|<=1.11.3|>=1.12.3|<=2.2.4" + }, + { + "test_index": 379, + "scheme": "npm", + "npm_native": ">=6.4.9", + "expected_vers": "vers:npm/>=6.4.9" + }, + { + "test_index": 380, + "scheme": "npm", + "npm_native": "<=6.4.8", + "expected_vers": "vers:npm/<=6.4.8" + }, + { + "test_index": 381, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 382, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 383, + "scheme": "npm", + "npm_native": ">=1.1.0", + "expected_vers": "vers:npm/>=1.1.0" + }, + { + "test_index": 384, + "scheme": "npm", + "npm_native": "<1.1.0", + "expected_vers": "vers:npm/<1.1.0" + }, + { + "test_index": 385, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 386, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 387, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 388, + "scheme": "npm", + "npm_native": "<=2.0.0", + "expected_vers": "vers:npm/<=2.0.0" + }, + { + "test_index": 389, + "scheme": "npm", + "npm_native": ">=0.10.0", + "expected_vers": "vers:npm/>=0.10.0" + }, + { + "test_index": 390, + "scheme": "npm", + "npm_native": "<=0.9.1", + "expected_vers": "vers:npm/<=0.9.1" + }, + { + "test_index": 391, + "scheme": "npm", + "npm_native": ">=1.0.1 || >=0.9.5 <1.0.0", + "expected_vers": "vers:npm/>=0.9.5|<1.0.0|>=1.0.1" + }, + { + "test_index": 392, + "scheme": "npm", + "npm_native": "<=0.9.4 || 1.0.0", + "expected_vers": "vers:npm/<=0.9.4|1.0.0" + }, + { + "test_index": 393, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 394, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 395, + "scheme": "npm", + "npm_native": "<=1.4.6", + "expected_vers": "vers:npm/<=1.4.6" + }, + { + "test_index": 396, + "scheme": "npm", + "npm_native": ">=5.0.3 >=4.2.1", + "expected_vers": "vers:npm/>=4.2.1|>=5.0.3" + }, + { + "test_index": 397, + "scheme": "npm", + "npm_native": "<5.0.3 >=5.0.0 || < 4.2.1", + "expected_vers": "vers:npm/<4.2.1|>=5.0.0|<5.0.3" + }, + { + "test_index": 398, + "scheme": "npm", + "npm_native": ">=0.9.74", + "expected_vers": "vers:npm/>=0.9.74" + }, + { + "test_index": 399, + "scheme": "npm", + "npm_native": "<=0.9.73", + "expected_vers": "vers:npm/<=0.9.73" + }, + { + "test_index": 400, + "scheme": "npm", + "npm_native": ">=1.1.0", + "expected_vers": "vers:npm/>=1.1.0" + }, + { + "test_index": 401, + "scheme": "npm", + "npm_native": "<1.1.0", + "expected_vers": "vers:npm/<1.1.0" + }, + { + "test_index": 402, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 403, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 404, + "scheme": "npm", + "npm_native": ">=3.1.3 < 4.0.0 || >=4.1.1", + "expected_vers": "vers:npm/>=3.1.3|<4.0.0|>=4.1.1" + }, + { + "test_index": 405, + "scheme": "npm", + "npm_native": "< 3.1.3 || >= 4.0.0 <4.1.1", + "expected_vers": "vers:npm/<3.1.3|>=4.0.0|<4.1.1" + }, + { + "test_index": 406, + "scheme": "npm", + "npm_native": ">=1.0.2", + "expected_vers": "vers:npm/>=1.0.2" + }, + { + "test_index": 407, + "scheme": "npm", + "npm_native": "<=1.0.1", + "expected_vers": "vers:npm/<=1.0.1" + }, + { + "test_index": 408, + "scheme": "npm", + "npm_native": ">=0.3.2", + "expected_vers": "vers:npm/>=0.3.2" + }, + { + "test_index": 409, + "scheme": "npm", + "npm_native": "<0.3.2", + "expected_vers": "vers:npm/<0.3.2" + }, + { + "test_index": 410, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 411, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 412, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 413, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 414, + "scheme": "npm", + "npm_native": ">= 1.x", + "expected_vers": "vers:npm/>=1.0.0|<2.0.0" + }, + { + "test_index": 415, + "scheme": "npm", + "npm_native": "<1.0.0", + "expected_vers": "vers:npm/<1.0.0" + }, + { + "test_index": 416, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 417, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 418, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 419, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 420, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 421, + "scheme": "npm", + "npm_native": ">=1.10.4 <1.11.0 || >=1.16.0", + "expected_vers": "vers:npm/>=1.10.4|<1.11.0|>=1.16.0" + }, + { + "test_index": 422, + "scheme": "npm", + "npm_native": "<1.10.4 || >=1.11.0 <1.16.0", + "expected_vers": "vers:npm/<1.10.4|>=1.11.0|<1.16.0" + }, + { + "test_index": 423, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 424, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 425, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 426, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 427, + "scheme": "npm", + "npm_native": ">=6.0.0", + "expected_vers": "vers:npm/>=6.0.0" + }, + { + "test_index": 428, + "scheme": "npm", + "npm_native": "<=0.0.5", + "expected_vers": "vers:npm/<=0.0.5" + }, + { + "test_index": 429, + "scheme": "npm", + "npm_native": ">=6.5.2", + "expected_vers": "vers:npm/>=6.5.2" + }, + { + "test_index": 430, + "scheme": "npm", + "npm_native": "<6.5.2", + "expected_vers": "vers:npm/<6.5.2" + }, + { + "test_index": 431, + "scheme": "npm", + "npm_native": ">=1.6.0", + "expected_vers": "vers:npm/>=1.6.0" + }, + { + "test_index": 432, + "scheme": "npm", + "npm_native": "<1.6.0", + "expected_vers": "vers:npm/<1.6.0" + }, + { + "test_index": 433, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 434, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 435, + "scheme": "npm", + "npm_native": "<=1.3.0", + "expected_vers": "vers:npm/<=1.3.0" + }, + { + "test_index": 436, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 437, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 438, + "scheme": "npm", + "npm_native": ">=2.2.0", + "expected_vers": "vers:npm/>=2.2.0" + }, + { + "test_index": 439, + "scheme": "npm", + "npm_native": "<2.2.0", + "expected_vers": "vers:npm/<2.2.0" + }, + { + "test_index": 440, + "scheme": "npm", + "npm_native": ">= 0.0.15", + "expected_vers": "vers:npm/>=0.0.15" + }, + { + "test_index": 441, + "scheme": "npm", + "npm_native": ">= 0.0.10 <= 0.0.14", + "expected_vers": "vers:npm/>=0.0.10|<=0.0.14" + }, + { + "test_index": 442, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 443, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 444, + "scheme": "npm", + "npm_native": "<=1.0.5", + "expected_vers": "vers:npm/<=1.0.5" + }, + { + "test_index": 445, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 446, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 447, + "scheme": "npm", + "npm_native": ">=3.0.0", + "expected_vers": "vers:npm/>=3.0.0" + }, + { + "test_index": 448, + "scheme": "npm", + "npm_native": "<3.0.0", + "expected_vers": "vers:npm/<3.0.0" + }, + { + "test_index": 449, + "scheme": "npm", + "npm_native": "<=1.0.4", + "expected_vers": "vers:npm/<=1.0.4" + }, + { + "test_index": 450, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 451, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 452, + "scheme": "npm", + "npm_native": "<=0.0.2", + "expected_vers": "vers:npm/<=0.0.2" + }, + { + "test_index": 453, + "scheme": "npm", + "npm_native": ">=0.2.4", + "expected_vers": "vers:npm/>=0.2.4" + }, + { + "test_index": 454, + "scheme": "npm", + "npm_native": "<=0.2.3", + "expected_vers": "vers:npm/<=0.2.3" + }, + { + "test_index": 455, + "scheme": "npm", + "npm_native": ">=2.3.0", + "expected_vers": "vers:npm/>=2.3.0" + }, + { + "test_index": 456, + "scheme": "npm", + "npm_native": "<=2.2.13", + "expected_vers": "vers:npm/<=2.2.13" + }, + { + "test_index": 457, + "scheme": "npm", + "npm_native": ">=0.1.4", + "expected_vers": "vers:npm/>=0.1.4" + }, + { + "test_index": 458, + "scheme": "npm", + "npm_native": "<0.1.4", + "expected_vers": "vers:npm/<0.1.4" + }, + { + "test_index": 459, + "scheme": "npm", + "npm_native": ">=2.68.0", + "expected_vers": "vers:npm/>=2.68.0" + }, + { + "test_index": 460, + "scheme": "npm", + "npm_native": ">=2.2.6 <2.47.0 || >2.51.0 <=2.67.0", + "expected_vers": "vers:npm/>=2.2.6|<2.47.0|>2.51.0|<=2.67.0" + }, + { + "test_index": 461, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 462, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 463, + "scheme": "npm", + "npm_native": ">=1.1.7", + "expected_vers": "vers:npm/>=1.1.7" + }, + { + "test_index": 464, + "scheme": "npm", + "npm_native": "<=1.1.5", + "expected_vers": "vers:npm/<=1.1.5" + }, + { + "test_index": 465, + "scheme": "npm", + "npm_native": ">=2.0.7", + "expected_vers": "vers:npm/>=2.0.7" + }, + { + "test_index": 466, + "scheme": "npm", + "npm_native": "<2.0.7", + "expected_vers": "vers:npm/<2.0.7" + }, + { + "test_index": 467, + "scheme": "npm", + "npm_native": ">=1.7.0", + "expected_vers": "vers:npm/>=1.7.0" + }, + { + "test_index": 468, + "scheme": "npm", + "npm_native": "<=1.6.2", + "expected_vers": "vers:npm/<=1.6.2" + }, + { + "test_index": 469, + "scheme": "npm", + "npm_native": ">=1.3.4", + "expected_vers": "vers:npm/>=1.3.4" + }, + { + "test_index": 470, + "scheme": "npm", + "npm_native": "<=1.3.3", + "expected_vers": "vers:npm/<=1.3.3" + }, + { + "test_index": 471, + "scheme": "npm", + "npm_native": ">=1.4.2", + "expected_vers": "vers:npm/>=1.4.2" + }, + { + "test_index": 472, + "scheme": "npm", + "npm_native": "<1.4.2", + "expected_vers": "vers:npm/<1.4.2" + }, + { + "test_index": 473, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 474, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 475, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 476, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 477, + "scheme": "npm", + "npm_native": ">=0.1.3", + "expected_vers": "vers:npm/>=0.1.3" + }, + { + "test_index": 478, + "scheme": "npm", + "npm_native": "<0.1.3", + "expected_vers": "vers:npm/<0.1.3" + }, + { + "test_index": 479, + "scheme": "npm", + "npm_native": ">=0.38.0", + "expected_vers": "vers:npm/>=0.38.0" + }, + { + "test_index": 480, + "scheme": "npm", + "npm_native": "<=0.37.0", + "expected_vers": "vers:npm/<=0.37.0" + }, + { + "test_index": 481, + "scheme": "npm", + "npm_native": ">=2.26.1", + "expected_vers": "vers:npm/>=2.26.1" + }, + { + "test_index": 482, + "scheme": "npm", + "npm_native": "<2.26.1", + "expected_vers": "vers:npm/<2.26.1" + }, + { + "test_index": 483, + "scheme": "npm", + "npm_native": ">=0.8.0", + "expected_vers": "vers:npm/>=0.8.0" + }, + { + "test_index": 484, + "scheme": "npm", + "npm_native": "<=0.7.0", + "expected_vers": "vers:npm/<=0.7.0" + }, + { + "test_index": 485, + "scheme": "npm", + "npm_native": ">=0.4.16", + "expected_vers": "vers:npm/>=0.4.16" + }, + { + "test_index": 486, + "scheme": "npm", + "npm_native": "<0.4.16", + "expected_vers": "vers:npm/<0.4.16" + }, + { + "test_index": 487, + "scheme": "npm", + "npm_native": ">=1.3.1", + "expected_vers": "vers:npm/>=1.3.1" + }, + { + "test_index": 488, + "scheme": "npm", + "npm_native": "<1.3.1", + "expected_vers": "vers:npm/<1.3.1" + }, + { + "test_index": 489, + "scheme": "npm", + "npm_native": ">=2.1.13", + "expected_vers": "vers:npm/>=2.1.13" + }, + { + "test_index": 490, + "scheme": "npm", + "npm_native": "<=2.1.12", + "expected_vers": "vers:npm/<=2.1.12" + }, + { + "test_index": 491, + "scheme": "npm", + "npm_native": ">=1.2.3", + "expected_vers": "vers:npm/>=1.2.3" + }, + { + "test_index": 492, + "scheme": "npm", + "npm_native": "<=1.2.2", + "expected_vers": "vers:npm/<=1.2.2" + }, + { + "test_index": 493, + "scheme": "npm", + "npm_native": ">=3.4.4", + "expected_vers": "vers:npm/>=3.4.4" + }, + { + "test_index": 494, + "scheme": "npm", + "npm_native": ">=2.0.0 <=3.4.3", + "expected_vers": "vers:npm/>=2.0.0|<=3.4.3" + }, + { + "test_index": 495, + "scheme": "npm", + "npm_native": ">0.7.0", + "expected_vers": "vers:npm/>0.7.0" + }, + { + "test_index": 496, + "scheme": "npm", + "npm_native": "<=0.7.0", + "expected_vers": "vers:npm/<=0.7.0" + }, + { + "test_index": 497, + "scheme": "npm", + "npm_native": ">=0.1.6", + "expected_vers": "vers:npm/>=0.1.6" + }, + { + "test_index": 498, + "scheme": "npm", + "npm_native": "<0.1.6", + "expected_vers": "vers:npm/<0.1.6" + }, + { + "test_index": 499, + "scheme": "npm", + "npm_native": ">=1.1.10", + "expected_vers": "vers:npm/>=1.1.10" + }, + { + "test_index": 500, + "scheme": "npm", + "npm_native": "<=1.1.9", + "expected_vers": "vers:npm/<=1.1.9" + }, + { + "test_index": 501, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 502, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 503, + "scheme": "npm", + "npm_native": ">=2.1.0", + "expected_vers": "vers:npm/>=2.1.0" + }, + { + "test_index": 504, + "scheme": "npm", + "npm_native": "<=2.0.3", + "expected_vers": "vers:npm/<=2.0.3" + }, + { + "test_index": 505, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 506, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 507, + "scheme": "npm", + "npm_native": ">= 0.5.1", + "expected_vers": "vers:npm/>=0.5.1" + }, + { + "test_index": 508, + "scheme": "npm", + "npm_native": "0.5.0", + "expected_vers": "vers:npm/0.5.0" + }, + { + "test_index": 509, + "scheme": "npm", + "npm_native": ">=2.4.3", + "expected_vers": "vers:npm/>=2.4.3" + }, + { + "test_index": 510, + "scheme": "npm", + "npm_native": "<=2.4.2", + "expected_vers": "vers:npm/<=2.4.2" + }, + { + "test_index": 511, + "scheme": "npm", + "npm_native": "> 3.0.0", + "expected_vers": "vers:npm/>3.0.0" + }, + { + "test_index": 512, + "scheme": "npm", + "npm_native": "<= 3.0.0", + "expected_vers": "vers:npm/<=3.0.0" + }, + { + "test_index": 513, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 514, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 515, + "scheme": "npm", + "npm_native": ">=1.1.8", + "expected_vers": "vers:npm/>=1.1.8" + }, + { + "test_index": 516, + "scheme": "npm", + "npm_native": "<1.1.8", + "expected_vers": "vers:npm/<1.1.8" + }, + { + "test_index": 517, + "scheme": "npm", + "npm_native": "<=1.0.0", + "expected_vers": "vers:npm/<=1.0.0" + }, + { + "test_index": 518, + "scheme": "npm", + "npm_native": ">=3.23.6", + "expected_vers": "vers:npm/>=3.23.6" + }, + { + "test_index": 519, + "scheme": "npm", + "npm_native": "<3.23.6", + "expected_vers": "vers:npm/<3.23.6" + }, + { + "test_index": 520, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 521, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 522, + "scheme": "npm", + "npm_native": ">=5.0.3 <6.0.0 || >=6.8.6", + "expected_vers": "vers:npm/>=5.0.3|<6.0.0|>=6.8.6" + }, + { + "test_index": 523, + "scheme": "npm", + "npm_native": "<=6.8.5", + "expected_vers": "vers:npm/<=6.8.5" + }, + { + "test_index": 524, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 525, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 526, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 527, + "scheme": "npm", + "npm_native": "<=0.1.3", + "expected_vers": "vers:npm/<=0.1.3" + }, + { + "test_index": 528, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 529, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 530, + "scheme": "npm", + "npm_native": ">=6.4.1", + "expected_vers": "vers:npm/>=6.4.1" + }, + { + "test_index": 531, + "scheme": "npm", + "npm_native": "<=6.4.0", + "expected_vers": "vers:npm/<=6.4.0" + }, + { + "test_index": 532, + "scheme": "npm", + "npm_native": ">=1.1.0", + "expected_vers": "vers:npm/>=1.1.0" + }, + { + "test_index": 533, + "scheme": "npm", + "npm_native": "<1.1.0", + "expected_vers": "vers:npm/<1.1.0" + }, + { + "test_index": 534, + "scheme": "npm", + "npm_native": ">=1.0.2", + "expected_vers": "vers:npm/>=1.0.2" + }, + { + "test_index": 535, + "scheme": "npm", + "npm_native": "<1.0.2", + "expected_vers": "vers:npm/<1.0.2" + }, + { + "test_index": 536, + "scheme": "npm", + "npm_native": ">=2.2.1", + "expected_vers": "vers:npm/>=2.2.1" + }, + { + "test_index": 537, + "scheme": "npm", + "npm_native": "<=2.2.0", + "expected_vers": "vers:npm/<=2.2.0" + }, + { + "test_index": 538, + "scheme": "npm", + "npm_native": "<=0.0.24", + "expected_vers": "vers:npm/<=0.0.24" + }, + { + "test_index": 539, + "scheme": "npm", + "npm_native": "<=0.0.20", + "expected_vers": "vers:npm/<=0.0.20" + }, + { + "test_index": 540, + "scheme": "npm", + "npm_native": ">=0.3.4", + "expected_vers": "vers:npm/>=0.3.4" + }, + { + "test_index": 541, + "scheme": "npm", + "npm_native": "<=0.3.3", + "expected_vers": "vers:npm/<=0.3.3" + }, + { + "test_index": 542, + "scheme": "npm", + "npm_native": "=3.10.1 || >=3.10.3", + "expected_vers": "vers:npm/3.10.1|>=3.10.3" + }, + { + "test_index": 543, + "scheme": "npm", + "npm_native": ">=3.0.0 <=3.9.1 || =3.10.2", + "expected_vers": "vers:npm/>=3.0.0|<=3.9.1|3.10.2" + }, + { + "test_index": 544, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 545, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 546, + "scheme": "npm", + "npm_native": ">=0.1.2", + "expected_vers": "vers:npm/>=0.1.2" + }, + { + "test_index": 547, + "scheme": "npm", + "npm_native": "<=0.1.1", + "expected_vers": "vers:npm/<=0.1.1" + }, + { + "test_index": 548, + "scheme": "npm", + "npm_native": "<=0.13.12", + "expected_vers": "vers:npm/<=0.13.12" + }, + { + "test_index": 549, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 550, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 551, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 552, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 553, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 554, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 555, + "scheme": "npm", + "npm_native": ">1.1.5", + "expected_vers": "vers:npm/>1.1.5" + }, + { + "test_index": 556, + "scheme": "npm", + "npm_native": "<=1.1.5", + "expected_vers": "vers:npm/<=1.1.5" + }, + { + "test_index": 557, + "scheme": "npm", + "npm_native": "^1.1.7 || >= 2.0.1", + "expected_vers": "vers:npm/>=1.1.7|<2.0.0|>=2.0.1" + }, + { + "test_index": 558, + "scheme": "npm", + "npm_native": "<2.0.1 || <1.1.7", + "expected_vers": "vers:npm/<1.1.7|<2.0.1" + }, + { + "test_index": 559, + "scheme": "npm", + "npm_native": ">=2.0.0", + "expected_vers": "vers:npm/>=2.0.0" + }, + { + "test_index": 560, + "scheme": "npm", + "npm_native": ">=1.4.0 <2.0.0", + "expected_vers": "vers:npm/>=1.4.0|<2.0.0" + }, + { + "test_index": 561, + "scheme": "npm", + "npm_native": ">=2.3.0", + "expected_vers": "vers:npm/>=2.3.0" + }, + { + "test_index": 562, + "scheme": "npm", + "npm_native": ">=0.9.7 <=2.2.2", + "expected_vers": "vers:npm/>=0.9.7|<=2.2.2" + }, + { + "test_index": 563, + "scheme": "npm", + "npm_native": ">=0.2.5", + "expected_vers": "vers:npm/>=0.2.5" + }, + { + "test_index": 564, + "scheme": "npm", + "npm_native": "<0.2.5", + "expected_vers": "vers:npm/<0.2.5" + }, + { + "test_index": 565, + "scheme": "npm", + "npm_native": ">=3.22.1", + "expected_vers": "vers:npm/>=3.22.1" + }, + { + "test_index": 566, + "scheme": "npm", + "npm_native": "<3.22.1", + "expected_vers": "vers:npm/<3.22.1" + }, + { + "test_index": 567, + "scheme": "npm", + "npm_native": "<=0.0.3", + "expected_vers": "vers:npm/<=0.0.3" + }, + { + "test_index": 568, + "scheme": "npm", + "npm_native": ">=3.0.0", + "expected_vers": "vers:npm/>=3.0.0" + }, + { + "test_index": 569, + "scheme": "npm", + "npm_native": "<3.0.0", + "expected_vers": "vers:npm/<3.0.0" + }, + { + "test_index": 570, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 571, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 572, + "scheme": "npm", + "npm_native": ">=3.4.6 < 4.0.0|| >=4.0.5", + "expected_vers": "vers:npm/>=3.4.6|<4.0.0|>=4.0.5" + }, + { + "test_index": 573, + "scheme": "npm", + "npm_native": "<3.4.6 || > 4.0.0 <4.0.5", + "expected_vers": "vers:npm/<3.4.6|>4.0.0|<4.0.5" + }, + { + "test_index": 574, + "scheme": "npm", + "npm_native": ">=1.8.7", + "expected_vers": "vers:npm/>=1.8.7" + }, + { + "test_index": 575, + "scheme": "npm", + "npm_native": "<1.8.7", + "expected_vers": "vers:npm/<1.8.7" + }, + { + "test_index": 576, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 577, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 578, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 579, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 580, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 581, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 582, + "scheme": "npm", + "npm_native": ">=0.1.0", + "expected_vers": "vers:npm/>=0.1.0" + }, + { + "test_index": 583, + "scheme": "npm", + "npm_native": ">=1.6.1", + "expected_vers": "vers:npm/>=1.6.1" + }, + { + "test_index": 584, + "scheme": "npm", + "npm_native": "<=1.6.0", + "expected_vers": "vers:npm/<=1.6.0" + }, + { + "test_index": 585, + "scheme": "npm", + "npm_native": ">=3.9.0", + "expected_vers": "vers:npm/>=3.9.0" + }, + { + "test_index": 586, + "scheme": "npm", + "npm_native": "<3.9.0", + "expected_vers": "vers:npm/<3.9.0" + }, + { + "test_index": 587, + "scheme": "npm", + "npm_native": ">=1.4.4", + "expected_vers": "vers:npm/>=1.4.4" + }, + { + "test_index": 588, + "scheme": "npm", + "npm_native": "<=1.4.3", + "expected_vers": "vers:npm/<=1.4.3" + }, + { + "test_index": 589, + "scheme": "npm", + "npm_native": ">=0.2.3", + "expected_vers": "vers:npm/>=0.2.3" + }, + { + "test_index": 590, + "scheme": "npm", + "npm_native": "<0.2.3", + "expected_vers": "vers:npm/<0.2.3" + }, + { + "test_index": 591, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 592, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 593, + "scheme": "npm", + "npm_native": ">=3.0.0", + "expected_vers": "vers:npm/>=3.0.0" + }, + { + "test_index": 594, + "scheme": "npm", + "npm_native": "<3.0.0", + "expected_vers": "vers:npm/<3.0.0" + }, + { + "test_index": 595, + "scheme": "npm", + "npm_native": ">=0.3.1", + "expected_vers": "vers:npm/>=0.3.1" + }, + { + "test_index": 596, + "scheme": "npm", + "npm_native": "<=0.3.0", + "expected_vers": "vers:npm/<=0.3.0" + }, + { + "test_index": 597, + "scheme": "npm", + "npm_native": ">=3.4.0", + "expected_vers": "vers:npm/>=3.4.0" + }, + { + "test_index": 598, + "scheme": "npm", + "npm_native": "<3.4.0", + "expected_vers": "vers:npm/<3.4.0" + }, + { + "test_index": 599, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 600, + "scheme": "npm", + "npm_native": "<=2.2.4", + "expected_vers": "vers:npm/<=2.2.4" + }, + { + "test_index": 601, + "scheme": "npm", + "npm_native": ">=1.1.5", + "expected_vers": "vers:npm/>=1.1.5" + }, + { + "test_index": 602, + "scheme": "npm", + "npm_native": "<1.1.5", + "expected_vers": "vers:npm/<1.1.5" + }, + { + "test_index": 603, + "scheme": "npm", + "npm_native": "<=0.0.32", + "expected_vers": "vers:npm/<=0.0.32" + }, + { + "test_index": 604, + "scheme": "npm", + "npm_native": ">=1.1.4", + "expected_vers": "vers:npm/>=1.1.4" + }, + { + "test_index": 605, + "scheme": "npm", + "npm_native": "<=1.1.3", + "expected_vers": "vers:npm/<=1.1.3" + }, + { + "test_index": 606, + "scheme": "npm", + "npm_native": ">=0.35.1", + "expected_vers": "vers:npm/>=0.35.1" + }, + { + "test_index": 607, + "scheme": "npm", + "npm_native": "<=0.35.0", + "expected_vers": "vers:npm/<=0.35.0" + }, + { + "test_index": 608, + "scheme": "npm", + "npm_native": ">=4.1.2", + "expected_vers": "vers:npm/>=4.1.2" + }, + { + "test_index": 609, + "scheme": "npm", + "npm_native": ">=3.1.0 <4.1.2", + "expected_vers": "vers:npm/>=3.1.0|<4.1.2" + }, + { + "test_index": 610, + "scheme": "npm", + "npm_native": ">=5.0.2", + "expected_vers": "vers:npm/>=5.0.2" + }, + { + "test_index": 611, + "scheme": "npm", + "npm_native": "<=5.0.1", + "expected_vers": "vers:npm/<=5.0.1" + }, + { + "test_index": 612, + "scheme": "npm", + "npm_native": ">=1.4.0", + "expected_vers": "vers:npm/>=1.4.0" + }, + { + "test_index": 613, + "scheme": "npm", + "npm_native": "<1.4.0", + "expected_vers": "vers:npm/<1.4.0" + }, + { + "test_index": 614, + "scheme": "npm", + "npm_native": ">=3.20.0", + "expected_vers": "vers:npm/>=3.20.0" + }, + { + "test_index": 615, + "scheme": "npm", + "npm_native": "<=3.19.3", + "expected_vers": "vers:npm/<=3.19.3" + }, + { + "test_index": 616, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 617, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 618, + "scheme": "npm", + "npm_native": ">=1.1.4", + "expected_vers": "vers:npm/>=1.1.4" + }, + { + "test_index": 619, + "scheme": "npm", + "npm_native": "<1.1.4", + "expected_vers": "vers:npm/<1.1.4" + }, + { + "test_index": 620, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 621, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 622, + "scheme": "npm", + "npm_native": "<=1.1.1", + "expected_vers": "vers:npm/<=1.1.1" + }, + { + "test_index": 623, + "scheme": "npm", + "npm_native": ">=3.2.2", + "expected_vers": "vers:npm/>=3.2.2" + }, + { + "test_index": 624, + "scheme": "npm", + "npm_native": "<3.2.2", + "expected_vers": "vers:npm/<3.2.2" + }, + { + "test_index": 625, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 626, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 627, + "scheme": "npm", + "npm_native": ">=1.0.0", + "expected_vers": "vers:npm/>=1.0.0" + }, + { + "test_index": 628, + "scheme": "npm", + "npm_native": "<1.0.0", + "expected_vers": "vers:npm/<1.0.0" + }, + { + "test_index": 629, + "scheme": "npm", + "npm_native": ">=5.1.3", + "expected_vers": "vers:npm/>=5.1.3" + }, + { + "test_index": 630, + "scheme": "npm", + "npm_native": "<5.1.3", + "expected_vers": "vers:npm/<5.1.3" + }, + { + "test_index": 631, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 632, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 633, + "scheme": "npm", + "npm_native": ">= 0.3.0", + "expected_vers": "vers:npm/>=0.3.0" + }, + { + "test_index": 634, + "scheme": "npm", + "npm_native": "< 0.3.0", + "expected_vers": "vers:npm/<0.3.0" + }, + { + "test_index": 635, + "scheme": "npm", + "npm_native": ">=3.11 <4 || >=4.5", + "expected_vers": "vers:npm/>=3.11.0|<4.0.0|>=4.5.0" + }, + { + "test_index": 636, + "scheme": "npm", + "npm_native": "<3.11 || >= 4 <4.5", + "expected_vers": "vers:npm/<3.11.0|>=4.0.0|<4.5.0" + }, + { + "test_index": 637, + "scheme": "npm", + "npm_native": ">=1.3.0", + "expected_vers": "vers:npm/>=1.3.0" + }, + { + "test_index": 638, + "scheme": "npm", + "npm_native": "<1.3.0", + "expected_vers": "vers:npm/<1.3.0" + }, + { + "test_index": 639, + "scheme": "npm", + "npm_native": ">=4.17.19", + "expected_vers": "vers:npm/>=4.17.19" + }, + { + "test_index": 640, + "scheme": "npm", + "npm_native": ">=4.17.15 <4.17.19", + "expected_vers": "vers:npm/>=4.17.15|<4.17.19" + }, + { + "test_index": 641, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 642, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 643, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 644, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 645, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 646, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 647, + "scheme": "npm", + "npm_native": ">=6.0.5", + "expected_vers": "vers:npm/>=6.0.5" + }, + { + "test_index": 648, + "scheme": "npm", + "npm_native": "<=6.0.4", + "expected_vers": "vers:npm/<=6.0.4" + }, + { + "test_index": 649, + "scheme": "npm", + "npm_native": ">=2.14.0", + "expected_vers": "vers:npm/>=2.14.0" + }, + { + "test_index": 650, + "scheme": "npm", + "npm_native": ">=2.0.0-alpha8 <=2.0.0-rc2 || >=2.0.0 <=2.13.0", + "expected_vers": "vers:npm/>=2.0.0-alpha8|<=2.0.0-rc2|>=2.0.0|<=2.13.0" + }, + { + "test_index": 651, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 652, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 653, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 654, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 655, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 656, + "scheme": "npm", + "npm_native": "<=0.8.0", + "expected_vers": "vers:npm/<=0.8.0" + }, + { + "test_index": 657, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 658, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 659, + "scheme": "npm", + "npm_native": ">=0.4.1", + "expected_vers": "vers:npm/>=0.4.1" + }, + { + "test_index": 660, + "scheme": "npm", + "npm_native": "<=0.3.6", + "expected_vers": "vers:npm/<=0.3.6" + }, + { + "test_index": 661, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 662, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 663, + "scheme": "npm", + "npm_native": ">=0.5.1", + "expected_vers": "vers:npm/>=0.5.1" + }, + { + "test_index": 664, + "scheme": "npm", + "npm_native": "<=0.5.0", + "expected_vers": "vers:npm/<=0.5.0" + }, + { + "test_index": 665, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 666, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 667, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 668, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 669, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 670, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 671, + "scheme": "npm", + "npm_native": ">=0.11.1", + "expected_vers": "vers:npm/>=0.11.1" + }, + { + "test_index": 672, + "scheme": "npm", + "npm_native": "<0.11.1", + "expected_vers": "vers:npm/<0.11.1" + }, + { + "test_index": 673, + "scheme": "npm", + "npm_native": ">2.3.21", + "expected_vers": "vers:npm/>2.3.21" + }, + { + "test_index": 674, + "scheme": "npm", + "npm_native": "2.3.21", + "expected_vers": "vers:npm/2.3.21" + }, + { + "test_index": 675, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 676, + "scheme": "npm", + "npm_native": ">=3.3.1", + "expected_vers": "vers:npm/>=3.3.1" + }, + { + "test_index": 677, + "scheme": "npm", + "npm_native": "<3.3.1", + "expected_vers": "vers:npm/<3.3.1" + }, + { + "test_index": 678, + "scheme": "npm", + "npm_native": ">= 1.4.6 < 2.0.0 || >= 2.0.1", + "expected_vers": "vers:npm/>=1.4.6|<2.0.0|>=2.0.1" + }, + { + "test_index": 679, + "scheme": "npm", + "npm_native": ">= 1.0.0 < 1.4.6 || 2.0.0", + "expected_vers": "vers:npm/>=1.0.0|<1.4.6|2.0.0" + }, + { + "test_index": 680, + "scheme": "npm", + "npm_native": ">= 1.x", + "expected_vers": "vers:npm/>=1.0.0|<2.0.0" + }, + { + "test_index": 681, + "scheme": "npm", + "npm_native": "<1.0.0", + "expected_vers": "vers:npm/<1.0.0" + }, + { + "test_index": 682, + "scheme": "npm", + "npm_native": ">=1.6.3", + "expected_vers": "vers:npm/>=1.6.3" + }, + { + "test_index": 683, + "scheme": "npm", + "npm_native": "<1.6.3", + "expected_vers": "vers:npm/<1.6.3" + }, + { + "test_index": 684, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 685, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 686, + "scheme": "npm", + "npm_native": ">=11.0.0", + "expected_vers": "vers:npm/>=11.0.0" + }, + { + "test_index": 687, + "scheme": "npm", + "npm_native": "<11.0.0", + "expected_vers": "vers:npm/<11.0.0" + }, + { + "test_index": 688, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 689, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 690, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 691, + "scheme": "npm", + "npm_native": ">=1.0.6", + "expected_vers": "vers:npm/>=1.0.6" + }, + { + "test_index": 692, + "scheme": "npm", + "npm_native": "<=1.0.5", + "expected_vers": "vers:npm/<=1.0.5" + }, + { + "test_index": 693, + "scheme": "npm", + "npm_native": ">=1.1.1", + "expected_vers": "vers:npm/>=1.1.1" + }, + { + "test_index": 694, + "scheme": "npm", + "npm_native": "<1.1.1", + "expected_vers": "vers:npm/<1.1.1" + }, + { + "test_index": 695, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 696, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 697, + "scheme": "npm", + "npm_native": ">=2.3.6", + "expected_vers": "vers:npm/>=2.3.6" + }, + { + "test_index": 698, + "scheme": "npm", + "npm_native": "<=2.3.5", + "expected_vers": "vers:npm/<=2.3.5" + }, + { + "test_index": 699, + "scheme": "npm", + "npm_native": ">=0.3.6", + "expected_vers": "vers:npm/>=0.3.6" + }, + { + "test_index": 700, + "scheme": "npm", + "npm_native": "<=0.3.5", + "expected_vers": "vers:npm/<=0.3.5" + }, + { + "test_index": 701, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 702, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 703, + "scheme": "npm", + "npm_native": ">= 3.17.0", + "expected_vers": "vers:npm/>=3.17.0" + }, + { + "test_index": 704, + "scheme": "npm", + "npm_native": "<= 3.16.0", + "expected_vers": "vers:npm/<=3.16.0" + }, + { + "test_index": 705, + "scheme": "npm", + "npm_native": ">=0.4.9", + "expected_vers": "vers:npm/>=0.4.9" + }, + { + "test_index": 706, + "scheme": "npm", + "npm_native": "<0.4.9", + "expected_vers": "vers:npm/<0.4.9" + }, + { + "test_index": 707, + "scheme": "npm", + "npm_native": ">=4.17.11", + "expected_vers": "vers:npm/>=4.17.11" + }, + { + "test_index": 708, + "scheme": "npm", + "npm_native": "<4.17.11", + "expected_vers": "vers:npm/<4.17.11" + }, + { + "test_index": 709, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 710, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 711, + "scheme": "npm", + "npm_native": "<=0.0.6", + "expected_vers": "vers:npm/<=0.0.6" + }, + { + "test_index": 712, + "scheme": "npm", + "npm_native": ">=0.10.0", + "expected_vers": "vers:npm/>=0.10.0" + }, + { + "test_index": 713, + "scheme": "npm", + "npm_native": "<=0.9.11", + "expected_vers": "vers:npm/<=0.9.11" + }, + { + "test_index": 714, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 715, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 716, + "scheme": "npm", + "npm_native": ">=2.2.0", + "expected_vers": "vers:npm/>=2.2.0" + }, + { + "test_index": 717, + "scheme": "npm", + "npm_native": "<=2.1.1", + "expected_vers": "vers:npm/<=2.1.1" + }, + { + "test_index": 718, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 719, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 720, + "scheme": "npm", + "npm_native": "<=0.2.8", + "expected_vers": "vers:npm/<=0.2.8" + }, + { + "test_index": 721, + "scheme": "npm", + "npm_native": "<=0.29.0", + "expected_vers": "vers:npm/<=0.29.0" + }, + { + "test_index": 722, + "scheme": "npm", + "npm_native": ">=1.8.8", + "expected_vers": "vers:npm/>=1.8.8" + }, + { + "test_index": 723, + "scheme": "npm", + "npm_native": "<1.8.8", + "expected_vers": "vers:npm/<1.8.8" + }, + { + "test_index": 724, + "scheme": "npm", + "npm_native": ">=2.0.0", + "expected_vers": "vers:npm/>=2.0.0" + }, + { + "test_index": 725, + "scheme": "npm", + "npm_native": "<=1.3.3", + "expected_vers": "vers:npm/<=1.3.3" + }, + { + "test_index": 726, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 727, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 728, + "scheme": "npm", + "npm_native": ">=1.9.0", + "expected_vers": "vers:npm/>=1.9.0" + }, + { + "test_index": 729, + "scheme": "npm", + "npm_native": ">=1.7.1 <=1.8.3", + "expected_vers": "vers:npm/>=1.7.1|<=1.8.3" + }, + { + "test_index": 730, + "scheme": "npm", + "npm_native": "<=0.0.0", + "expected_vers": "vers:npm/<=0.0.0" + }, + { + "test_index": 731, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 732, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 733, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 734, + "scheme": "npm", + "npm_native": ">=0.4.11", + "expected_vers": "vers:npm/>=0.4.11" + }, + { + "test_index": 735, + "scheme": "npm", + "npm_native": "<=0.4.10", + "expected_vers": "vers:npm/<=0.4.10" + }, + { + "test_index": 736, + "scheme": "npm", + "npm_native": ">= 0.6.1", + "expected_vers": "vers:npm/>=0.6.1" + }, + { + "test_index": 737, + "scheme": "npm", + "npm_native": "<= 0.6.0", + "expected_vers": "vers:npm/<=0.6.0" + }, + { + "test_index": 738, + "scheme": "npm", + "npm_native": ">=11.1.4", + "expected_vers": "vers:npm/>=11.1.4" + }, + { + "test_index": 739, + "scheme": "npm", + "npm_native": "<11.1.4", + "expected_vers": "vers:npm/<11.1.4" + }, + { + "test_index": 740, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 741, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 742, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 743, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 744, + "scheme": "npm", + "npm_native": ">=13.0.8", + "expected_vers": "vers:npm/>=13.0.8" + }, + { + "test_index": 745, + "scheme": "npm", + "npm_native": "<13.0.8", + "expected_vers": "vers:npm/<13.0.8" + }, + { + "test_index": 746, + "scheme": "npm", + "npm_native": ">=5.1.2", + "expected_vers": "vers:npm/>=5.1.2" + }, + { + "test_index": 747, + "scheme": "npm", + "npm_native": "5.1.1", + "expected_vers": "vers:npm/5.1.1" + }, + { + "test_index": 748, + "scheme": "npm", + "npm_native": "<=1.1.5", + "expected_vers": "vers:npm/<=1.1.5" + }, + { + "test_index": 749, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 750, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 751, + "scheme": "npm", + "npm_native": ">=0.1.3", + "expected_vers": "vers:npm/>=0.1.3" + }, + { + "test_index": 752, + "scheme": "npm", + "npm_native": "<=0.1.2", + "expected_vers": "vers:npm/<=0.1.2" + }, + { + "test_index": 753, + "scheme": "npm", + "npm_native": ">=1.4.3", + "expected_vers": "vers:npm/>=1.4.3" + }, + { + "test_index": 754, + "scheme": "npm", + "npm_native": "<1.4.3", + "expected_vers": "vers:npm/<1.4.3" + }, + { + "test_index": 755, + "scheme": "npm", + "npm_native": ">=1.2.4", + "expected_vers": "vers:npm/>=1.2.4" + }, + { + "test_index": 756, + "scheme": "npm", + "npm_native": "<1.2.4", + "expected_vers": "vers:npm/<1.2.4" + }, + { + "test_index": 757, + "scheme": "npm", + "npm_native": ">=0.10.9", + "expected_vers": "vers:npm/>=0.10.9" + }, + { + "test_index": 758, + "scheme": "npm", + "npm_native": ">=0.10.0 <=0.10.8", + "expected_vers": "vers:npm/>=0.10.0|<=0.10.8" + }, + { + "test_index": 759, + "scheme": "npm", + "npm_native": ">=4.3.2", + "expected_vers": "vers:npm/>=4.3.2" + }, + { + "test_index": 760, + "scheme": "npm", + "npm_native": "<4.3.2", + "expected_vers": "vers:npm/<4.3.2" + }, + { + "test_index": 761, + "scheme": "npm", + "npm_native": ">=2.0.0-rc8", + "expected_vers": "vers:npm/>=2.0.0-rc8" + }, + { + "test_index": 762, + "scheme": "npm", + "npm_native": "<=2.0.0-rc7", + "expected_vers": "vers:npm/<=2.0.0-rc7" + }, + { + "test_index": 763, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 764, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 765, + "scheme": "npm", + "npm_native": ">=1.13.2", + "expected_vers": "vers:npm/>=1.13.2" + }, + { + "test_index": 766, + "scheme": "npm", + "npm_native": "<=1.13.1", + "expected_vers": "vers:npm/<=1.13.1" + }, + { + "test_index": 767, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 768, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 769, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 770, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 771, + "scheme": "npm", + "npm_native": ">=3.5.0", + "expected_vers": "vers:npm/>=3.5.0" + }, + { + "test_index": 772, + "scheme": "npm", + "npm_native": "<3.5.0", + "expected_vers": "vers:npm/<3.5.0" + }, + { + "test_index": 773, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 774, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 775, + "scheme": "npm", + "npm_native": "<=3.7.1 || >= 3.7.3", + "expected_vers": "vers:npm/<=3.7.1|>=3.7.3" + }, + { + "test_index": 776, + "scheme": "npm", + "npm_native": "3.7.2", + "expected_vers": "vers:npm/3.7.2" + }, + { + "test_index": 777, + "scheme": "npm", + "npm_native": ">=0.1.2", + "expected_vers": "vers:npm/>=0.1.2" + }, + { + "test_index": 778, + "scheme": "npm", + "npm_native": "<0.1.2", + "expected_vers": "vers:npm/<0.1.2" + }, + { + "test_index": 779, + "scheme": "npm", + "npm_native": "<=0.13.12", + "expected_vers": "vers:npm/<=0.13.12" + }, + { + "test_index": 780, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 781, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 782, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 783, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 784, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 785, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 786, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 787, + "scheme": "npm", + "npm_native": ">=3.0.4", + "expected_vers": "vers:npm/>=3.0.4" + }, + { + "test_index": 788, + "scheme": "npm", + "npm_native": "<3.0.4", + "expected_vers": "vers:npm/<3.0.4" + }, + { + "test_index": 789, + "scheme": "npm", + "npm_native": ">=1.0.7", + "expected_vers": "vers:npm/>=1.0.7" + }, + { + "test_index": 790, + "scheme": "npm", + "npm_native": "<=1.0.6", + "expected_vers": "vers:npm/<=1.0.6" + }, + { + "test_index": 791, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 792, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 793, + "scheme": "npm", + "npm_native": ">=1.3.1", + "expected_vers": "vers:npm/>=1.3.1" + }, + { + "test_index": 794, + "scheme": "npm", + "npm_native": "<1.3.1", + "expected_vers": "vers:npm/<1.3.1" + }, + { + "test_index": 795, + "scheme": "npm", + "npm_native": "> 2.4.3", + "expected_vers": "vers:npm/>2.4.3" + }, + { + "test_index": 796, + "scheme": "npm", + "npm_native": "<= 2.4.3", + "expected_vers": "vers:npm/<=2.4.3" + }, + { + "test_index": 797, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 798, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 799, + "scheme": "npm", + "npm_native": ">=0.2.3", + "expected_vers": "vers:npm/>=0.2.3" + }, + { + "test_index": 800, + "scheme": "npm", + "npm_native": "<0.2.3", + "expected_vers": "vers:npm/<0.2.3" + }, + { + "test_index": 801, + "scheme": "npm", + "npm_native": ">=1.2.4", + "expected_vers": "vers:npm/>=1.2.4" + }, + { + "test_index": 802, + "scheme": "npm", + "npm_native": "<=1.2.3", + "expected_vers": "vers:npm/<=1.2.3" + }, + { + "test_index": 803, + "scheme": "npm", + "npm_native": "<=1.0.2", + "expected_vers": "vers:npm/<=1.0.2" + }, + { + "test_index": 804, + "scheme": "npm", + "npm_native": ">=1.4.4", + "expected_vers": "vers:npm/>=1.4.4" + }, + { + "test_index": 805, + "scheme": "npm", + "npm_native": "<1.4.4", + "expected_vers": "vers:npm/<1.4.4" + }, + { + "test_index": 806, + "scheme": "npm", + "npm_native": ">=1.4.3", + "expected_vers": "vers:npm/>=1.4.3" + }, + { + "test_index": 807, + "scheme": "npm", + "npm_native": "<=1.4.2", + "expected_vers": "vers:npm/<=1.4.2" + }, + { + "test_index": 808, + "scheme": "npm", + "npm_native": ">=2.1.0", + "expected_vers": "vers:npm/>=2.1.0" + }, + { + "test_index": 809, + "scheme": "npm", + "npm_native": "<=2.0.0", + "expected_vers": "vers:npm/<=2.0.0" + }, + { + "test_index": 810, + "scheme": "npm", + "npm_native": ">=0.6.0", + "expected_vers": "vers:npm/>=0.6.0" + }, + { + "test_index": 811, + "scheme": "npm", + "npm_native": "<0.6.0", + "expected_vers": "vers:npm/<0.6.0" + }, + { + "test_index": 812, + "scheme": "npm", + "npm_native": ">=1.1.5", + "expected_vers": "vers:npm/>=1.1.5" + }, + { + "test_index": 813, + "scheme": "npm", + "npm_native": "<=1.1.4", + "expected_vers": "vers:npm/<=1.1.4" + }, + { + "test_index": 814, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 815, + "scheme": "npm", + "npm_native": "<=2.0.2", + "expected_vers": "vers:npm/<=2.0.2" + }, + { + "test_index": 816, + "scheme": "npm", + "npm_native": ">=4.0.0", + "expected_vers": "vers:npm/>=4.0.0" + }, + { + "test_index": 817, + "scheme": "npm", + "npm_native": "<4.0.0", + "expected_vers": "vers:npm/<4.0.0" + }, + { + "test_index": 818, + "scheme": "npm", + "npm_native": ">=2.12.4", + "expected_vers": "vers:npm/>=2.12.4" + }, + { + "test_index": 819, + "scheme": "npm", + "npm_native": "<=2.12.3", + "expected_vers": "vers:npm/<=2.12.3" + }, + { + "test_index": 820, + "scheme": "npm", + "npm_native": ">=0.0.3", + "expected_vers": "vers:npm/>=0.0.3" + }, + { + "test_index": 821, + "scheme": "npm", + "npm_native": "<0.0.3", + "expected_vers": "vers:npm/<0.0.3" + }, + { + "test_index": 822, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 823, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 824, + "scheme": "npm", + "npm_native": ">1.10.8", + "expected_vers": "vers:npm/>1.10.8" + }, + { + "test_index": 825, + "scheme": "npm", + "npm_native": "<=1.10.8", + "expected_vers": "vers:npm/<=1.10.8" + }, + { + "test_index": 826, + "scheme": "npm", + "npm_native": "*", + "expected_vers": "vers:npm/*" + }, + { + "test_index": 827, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 828, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 829, + "scheme": "npm", + "npm_native": ">=1.4.2", + "expected_vers": "vers:npm/>=1.4.2" + }, + { + "test_index": 830, + "scheme": "npm", + "npm_native": "<=1.4.1", + "expected_vers": "vers:npm/<=1.4.1" + }, + { + "test_index": 831, + "scheme": "npm", + "npm_native": "<=1.0.2", + "expected_vers": "vers:npm/<=1.0.2" + }, + { + "test_index": 832, + "scheme": "npm", + "npm_native": "<=1.1.8", + "expected_vers": "vers:npm/<=1.1.8" + }, + { + "test_index": 833, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 834, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 835, + "scheme": "npm", + "npm_native": ">=0.3.3", + "expected_vers": "vers:npm/>=0.3.3" + }, + { + "test_index": 836, + "scheme": "npm", + "npm_native": "<=0.3.2", + "expected_vers": "vers:npm/<=0.3.2" + }, + { + "test_index": 837, + "scheme": "npm", + "npm_native": ">=0.1.1", + "expected_vers": "vers:npm/>=0.1.1" + }, + { + "test_index": 838, + "scheme": "npm", + "npm_native": "<0.1.1", + "expected_vers": "vers:npm/<0.1.1" + }, + { + "test_index": 839, + "scheme": "npm", + "npm_native": ">=0.3.0", + "expected_vers": "vers:npm/>=0.3.0" + }, + { + "test_index": 840, + "scheme": "npm", + "npm_native": "<0.3.0", + "expected_vers": "vers:npm/<0.3.0" + }, + { + "test_index": 841, + "scheme": "npm", + "npm_native": "~0.2.2 || >=0.3.2", + "expected_vers": "vers:npm/>=0.2.2|<0.3.0|>=0.3.2" + }, + { + "test_index": 842, + "scheme": "npm", + "npm_native": "<0.2.2 || >=0.3.0 <0.3.2", + "expected_vers": "vers:npm/<0.2.2|>=0.3.0|<0.3.2" + }, + { + "test_index": 843, + "scheme": "npm", + "npm_native": ">= 7.0.0", + "expected_vers": "vers:npm/>=7.0.0" + }, + { + "test_index": 844, + "scheme": "npm", + "npm_native": ">= 5.2.1 <= 6.0.0 || >=6.0.0 <= 6.0.2", + "expected_vers": "vers:npm/>=5.2.1|<=6.0.0|>=6.0.0|<=6.0.2" + }, + { + "test_index": 845, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 846, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 847, + "scheme": "npm", + "npm_native": "<=0.0.6", + "expected_vers": "vers:npm/<=0.0.6" + }, + { + "test_index": 848, + "scheme": "npm", + "npm_native": ">=1.4.1 <2.0.0 || >=2.17.2", + "expected_vers": "vers:npm/>=1.4.1|<2.0.0|>=2.17.2" + }, + { + "test_index": 849, + "scheme": "npm", + "npm_native": "<1.4.1 || >=2.0.0 <2.17.2", + "expected_vers": "vers:npm/<1.4.1|>=2.0.0|<2.17.2" + }, + { + "test_index": 850, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 851, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 852, + "scheme": "npm", + "npm_native": ">=0.3.16", + "expected_vers": "vers:npm/>=0.3.16" + }, + { + "test_index": 853, + "scheme": "npm", + "npm_native": "<0.3.16", + "expected_vers": "vers:npm/<0.3.16" + }, + { + "test_index": 854, + "scheme": "npm", + "npm_native": "<=0.2.2", + "expected_vers": "vers:npm/<=0.2.2" + }, + { + "test_index": 855, + "scheme": "npm", + "npm_native": "<=0.2.4", + "expected_vers": "vers:npm/<=0.2.4" + }, + { + "test_index": 856, + "scheme": "npm", + "npm_native": ">=2.2.5", + "expected_vers": "vers:npm/>=2.2.5" + }, + { + "test_index": 857, + "scheme": "npm", + "npm_native": "<2.2.5", + "expected_vers": "vers:npm/<2.2.5" + }, + { + "test_index": 858, + "scheme": "npm", + "npm_native": "<=0.2.0", + "expected_vers": "vers:npm/<=0.2.0" + }, + { + "test_index": 859, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 860, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 861, + "scheme": "npm", + "npm_native": ">=1.0.1", + "expected_vers": "vers:npm/>=1.0.1" + }, + { + "test_index": 862, + "scheme": "npm", + "npm_native": "<1.0.1", + "expected_vers": "vers:npm/<1.0.1" + }, + { + "test_index": 863, + "scheme": "npm", + "npm_native": "<=0.0.9", + "expected_vers": "vers:npm/<=0.0.9" + }, + { + "test_index": 864, + "scheme": "npm", + "npm_native": ">=0.9.7", + "expected_vers": "vers:npm/>=0.9.7" + }, + { + "test_index": 865, + "scheme": "npm", + "npm_native": "<=0.9.6", + "expected_vers": "vers:npm/<=0.9.6" + }, + { + "test_index": 866, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 867, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 868, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 869, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 870, + "scheme": "npm", + "npm_native": ">=2.4.2", + "expected_vers": "vers:npm/>=2.4.2" + }, + { + "test_index": 871, + "scheme": "npm", + "npm_native": "<2.4.2", + "expected_vers": "vers:npm/<2.4.2" + }, + { + "test_index": 872, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 873, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 874, + "scheme": "npm", + "npm_native": ">=1.2.2", + "expected_vers": "vers:npm/>=1.2.2" + }, + { + "test_index": 875, + "scheme": "npm", + "npm_native": "<1.2.2", + "expected_vers": "vers:npm/<1.2.2" + }, + { + "test_index": 876, + "scheme": "npm", + "npm_native": "<0.0.0", + "expected_vers": "vers:npm/<0.0.0" + }, + { + "test_index": 877, + "scheme": "npm", + "npm_native": "<=99.999.99999", + "expected_vers": "vers:npm/<=99.999.99999" + }, + { + "test_index": 878, + "scheme": "npm", + "npm_native": ">=3.0.1", + "expected_vers": "vers:npm/>=3.0.1" + }, + { + "test_index": 879, + "scheme": "npm", + "npm_native": "<3.0.1", + "expected_vers": "vers:npm/<3.0.1" + }, + { + "test_index": 880, + "scheme": "npm", + "npm_native": "^1.2.9", + "expected_vers": "vers:npm/>=1.2.9|<2.0.0" + }, + { + "test_index": 881, + "scheme": "npm", + "npm_native": "~3.8.2", + "expected_vers": "vers:npm/>=3.8.2|<3.9.0" + }, + { + "test_index": 882, + "scheme": "npm", + "npm_native": "5.0.0 - 7.2.3", + "expected_vers": "vers:npm/>=5.0.0|<=7.2.3" + }, + { + "test_index": 883, + "scheme": "npm", + "npm_native": "2.1 || 2.6", + "expected_vers": "vers:npm/2.1.0|2.6.0" + }, + { + "test_index": 884, + "scheme": "npm", + "npm_native": "1.1.2 1.2.2", + "expected_vers": "vers:npm/1.1.2|1.2.2" + }, + { + "test_index": 885, + "scheme": "npm", + "npm_native": "<=2.1 >=1.1", + "expected_vers": "vers:npm/>=1.1.0|<=2.1.0" + } +] diff --git a/testdata/local/provenance.json b/testdata/local/provenance.json index 392d4e3..d62ee93 100644 --- a/testdata/local/provenance.json +++ b/testdata/local/provenance.json @@ -146,6 +146,38 @@ "generated_files": [ "tests/go_version_cmp_test.json" ] + }, + { + "repository": "https://github.com/package-url/univers.git", + "commit": "f365e4ee6eea8ebf1ad9219ccf4c4d523e822fb2", + "license": "Apache-2.0 AND BSD-3-Clause AND GPL-2.0-only AND MIT", + "source_files": [ + "tests/test_debian_version.py", + "tests/test_debian_version.py.ABOUT", + "tests/data/rpmvercmp.at", + "tests/data/rpmvercmp.at.ABOUT", + "tests/test_gentoo_pkgcore.py", + "tests/test_gentoo_pkgcore.py.ABOUT", + "tests/data/alpine_test.txt", + "tests/data/alpine_test.txt.ABOUT", + "tests/test_pacman_vercmp.py", + "tests/test_pacman_vercmp.py.ABOUT", + "tests/test_conan_version_comparison.py", + "tests/test_conan_version_comparison.py.ABOUT", + "tests/test_conan_version_range.py", + "tests/test_conan_version_range.py.ABOUT", + "tests/data/npm_advisory.json" + ], + "generated_files": [ + "tests/deb_univers_version_cmp_test.json", + "tests/rpm_univers_version_cmp_test.json", + "tests/gentoo_univers_version_cmp_test.json", + "tests/apk_univers_version_cmp_test.json", + "tests/alpm_univers_version_cmp_test.json", + "tests/conan_univers_version_cmp_test.json", + "tests/conan_univers_range_test.json", + "data/npm_advisory.json" + ] } ] } diff --git a/testdata/local/skip.json b/testdata/local/skip.json index b68e5a3..3dbaea1 100644 --- a/testdata/local/skip.json +++ b/testdata/local/skip.json @@ -1,3 +1,14 @@ { - "skips": [] + "skips": [ + { + "file": "local/tests/conan_univers_range_test.json", + "test_type": "containment", + "input": { + "vers": "vers:conan/>1|<2.0|>=3.2|<4-", + "version": "3.3-a1" + }, + "expected_output": false, + "reason": "VERS constraints cannot encode Conan's per-branch prerelease opt-in." + } + ] } diff --git a/testdata/local/tests/alpm_univers_version_cmp_test.json b/testdata/local/tests/alpm_univers_version_cmp_test.json new file mode 100644 index 0000000..56e4efc --- /dev/null +++ b/testdata/local/tests/alpm_univers_version_cmp_test.json @@ -0,0 +1,1043 @@ +{ + "$schema": "https://packageurl.org/schemas/vers-test.schema-0.2.json", + "tests": [ + { + "description": "univers Pacman orders \"1.5.0\" before \"1.5.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1", + "1.5.0" + ] + }, + "expected_output": [ + "1.5.0", + "1.5.1" + ] + }, + { + "description": "univers Pacman treats \"1.5.1\" and \"1.5.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1", + "1.5.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5\" before \"1.5.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1", + "1.5" + ] + }, + "expected_output": [ + "1.5", + "1.5.1" + ] + }, + { + "description": "univers Pacman treats \"1.5.1\" and \"1.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1", + "1.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5.0-1\" before \"1.5.0-2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.0-2", + "1.5.0-1" + ] + }, + "expected_output": [ + "1.5.0-1", + "1.5.0-2" + ] + }, + { + "description": "univers Pacman treats \"1.5.0-1\" and \"1.5.0-2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.0-1", + "1.5.0-2" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5.0-1\" before \"1.5.1-1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1-1", + "1.5.0-1" + ] + }, + "expected_output": [ + "1.5.0-1", + "1.5.1-1" + ] + }, + { + "description": "univers Pacman treats \"1.5.0-1\" and \"1.5.1-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.0-1", + "1.5.1-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5.0-2\" before \"1.5.1-1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1-1", + "1.5.0-2" + ] + }, + "expected_output": [ + "1.5.0-2", + "1.5.1-1" + ] + }, + { + "description": "univers Pacman treats \"1.5.0-2\" and \"1.5.1-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.0-2", + "1.5.1-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5\" before \"1.5.a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.a", + "1.5" + ] + }, + "expected_output": [ + "1.5", + "1.5.a" + ] + }, + { + "description": "univers Pacman treats \"1.5.a\" and \"1.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.a", + "1.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5.a\" before \"1.5.b\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.b", + "1.5.a" + ] + }, + "expected_output": [ + "1.5.a", + "1.5.b" + ] + }, + { + "description": "univers Pacman treats \"1.5.b\" and \"1.5.a\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.b", + "1.5.a" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5.b\" before \"1.5.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1", + "1.5.b" + ] + }, + "expected_output": [ + "1.5.b", + "1.5.1" + ] + }, + { + "description": "univers Pacman treats \"1.5.1\" and \"1.5.b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1", + "1.5.b" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"0:1.0\" before \"0:1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "0:1.1", + "0:1.0" + ] + }, + "expected_output": [ + "0:1.0", + "0:1.1" + ] + }, + { + "description": "univers Pacman treats \"0:1.0\" and \"0:1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "0:1.0", + "0:1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"0:1.0\" before \"1:1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "0:1.0" + ] + }, + "expected_output": [ + "0:1.0", + "1:1.0" + ] + }, + { + "description": "univers Pacman treats \"1:1.0\" and \"0:1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "0:1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"0:1.1\" before \"1:1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "0:1.1" + ] + }, + "expected_output": [ + "0:1.1", + "1:1.0" + ] + }, + { + "description": "univers Pacman treats \"1:1.0\" and \"0:1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "0:1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1:1.0\" before \"2:1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "2:1.1", + "1:1.0" + ] + }, + "expected_output": [ + "1:1.0", + "2:1.1" + ] + }, + { + "description": "univers Pacman treats \"1:1.0\" and \"2:1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "2:1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"0:1.0-1\" before \"1:1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "0:1.0-1" + ] + }, + "expected_output": [ + "0:1.0-1", + "1:1.0" + ] + }, + { + "description": "univers Pacman treats \"1:1.0\" and \"0:1.0-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "0:1.0-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"0:1.1-1\" before \"1:1.0-1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0-1", + "0:1.1-1" + ] + }, + "expected_output": [ + "0:1.1-1", + "1:1.0-1" + ] + }, + { + "description": "univers Pacman treats \"1:1.0-1\" and \"0:1.1-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0-1", + "0:1.1-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman treats \"0:1.0\" and \"1.0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "0:1.0", + "1.0" + ] + }, + "expected_output": true + }, + { + "description": "univers Pacman orders \"0:1.0\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.1", + "0:1.0" + ] + }, + "expected_output": [ + "0:1.0", + "1.1" + ] + }, + { + "description": "univers Pacman treats \"0:1.0\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "0:1.0", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.0\" before \"0:1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "0:1.1", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "0:1.1" + ] + }, + { + "description": "univers Pacman treats \"0:1.1\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "0:1.1", + "1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.0\" before \"1:1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "1:1.0" + ] + }, + { + "description": "univers Pacman treats \"1:1.0\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.1\" before \"1:1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "1:1.0" + ] + }, + { + "description": "univers Pacman treats \"1:1.0\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.0", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.1\" before \"1:1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.1", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "1:1.1" + ] + }, + { + "description": "univers Pacman treats \"1:1.1\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1:1.1", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman treats \"1.5.b-1\" and \"1.5.b\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.b-1", + "1.5.b" + ] + }, + "expected_output": true + }, + { + "description": "univers Pacman orders \"1.5-1\" before \"1.5.b\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.b", + "1.5-1" + ] + }, + "expected_output": [ + "1.5-1", + "1.5.b" + ] + }, + { + "description": "univers Pacman treats \"1.5-1\" and \"1.5.b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5-1", + "1.5.b" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5-1\" before \"1.5.1-1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1-1", + "1.5-1" + ] + }, + "expected_output": [ + "1.5-1", + "1.5.1-1" + ] + }, + { + "description": "univers Pacman treats \"1.5-1\" and \"1.5.1-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5-1", + "1.5.1-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5-2\" before \"1.5.1-1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1-1", + "1.5-2" + ] + }, + "expected_output": [ + "1.5-2", + "1.5.1-1" + ] + }, + { + "description": "univers Pacman treats \"1.5-2\" and \"1.5.1-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5-2", + "1.5.1-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5-2\" before \"1.5.1-2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1-2", + "1.5-2" + ] + }, + "expected_output": [ + "1.5-2", + "1.5.1-2" + ] + }, + { + "description": "univers Pacman treats \"1.5-2\" and \"1.5.1-2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5-2", + "1.5.1-2" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman treats \"1.5\" and \"1.5-1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5", + "1.5-1" + ] + }, + "expected_output": true + }, + { + "description": "univers Pacman treats \"1.1-1\" and \"1.1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.1-1", + "1.1" + ] + }, + "expected_output": true + }, + { + "description": "univers Pacman orders \"1.0-1\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.1", + "1.0-1" + ] + }, + "expected_output": [ + "1.0-1", + "1.1" + ] + }, + { + "description": "univers Pacman treats \"1.0-1\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.0-1", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.0\" before \"1.1-1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.1-1", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "1.1-1" + ] + }, + { + "description": "univers Pacman treats \"1.1-1\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.1-1", + "1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5b-1\" before \"1.5-1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5-1", + "1.5b-1" + ] + }, + "expected_output": [ + "1.5b-1", + "1.5-1" + ] + }, + { + "description": "univers Pacman treats \"1.5b-1\" and \"1.5-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5b-1", + "1.5-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5b \" before \"1.5 \".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5 ", + "1.5b " + ] + }, + "expected_output": [ + "1.5b ", + "1.5 " + ] + }, + { + "description": "univers Pacman treats \"1.5b \" and \"1.5 \" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5b ", + "1.5 " + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5b-1\" before \"1.5 \".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5 ", + "1.5b-1" + ] + }, + "expected_output": [ + "1.5b-1", + "1.5 " + ] + }, + { + "description": "univers Pacman treats \"1.5b-1\" and \"1.5 \" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5b-1", + "1.5 " + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.5b \" before \"1.5.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.5.1", + "1.5b " + ] + }, + "expected_output": [ + "1.5b ", + "1.5.1" + ] + }, + { + "description": "univers Pacman treats \"1.5b \" and \"1.5.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.5b ", + "1.5.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.0a\" before \"1.0alpha\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.0alpha", + "1.0a" + ] + }, + "expected_output": [ + "1.0a", + "1.0alpha" + ] + }, + { + "description": "univers Pacman treats \"1.0a\" and \"1.0alpha\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.0a", + "1.0alpha" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.0alpha\" before \"1.0b\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.0b", + "1.0alpha" + ] + }, + "expected_output": [ + "1.0alpha", + "1.0b" + ] + }, + { + "description": "univers Pacman treats \"1.0alpha\" and \"1.0b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.0alpha", + "1.0b" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.0b\" before \"1.0beta\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.0beta", + "1.0b" + ] + }, + "expected_output": [ + "1.0b", + "1.0beta" + ] + }, + { + "description": "univers Pacman treats \"1.0b\" and \"1.0beta\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.0b", + "1.0beta" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.0beta\" before \"1.0rc\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.0rc", + "1.0beta" + ] + }, + "expected_output": [ + "1.0beta", + "1.0rc" + ] + }, + { + "description": "univers Pacman treats \"1.0beta\" and \"1.0rc\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.0beta", + "1.0rc" + ] + }, + "expected_output": false + }, + { + "description": "univers Pacman orders \"1.0rc\" before \"1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "alpm", + "versions": [ + "1.0", + "1.0rc" + ] + }, + "expected_output": [ + "1.0rc", + "1.0" + ] + }, + { + "description": "univers Pacman treats \"1.0rc\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "alpm", + "versions": [ + "1.0rc", + "1.0" + ] + }, + "expected_output": false + } + ] +} diff --git a/testdata/local/tests/apk_univers_version_cmp_test.json b/testdata/local/tests/apk_univers_version_cmp_test.json new file mode 100644 index 0000000..3721dd4 --- /dev/null +++ b/testdata/local/tests/apk_univers_version_cmp_test.json @@ -0,0 +1,19319 @@ +{ + "$schema": "https://packageurl.org/schemas/vers-test.schema-0.2.json", + "tests": [ + { + "description": "univers Alpine orders \"0.1.0_alpha\" before \"2.34\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.34", + "0.1.0_alpha" + ] + }, + "expected_output": [ + "0.1.0_alpha", + "2.34" + ] + }, + { + "description": "univers Alpine treats \"2.34\" and \"0.1.0_alpha\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.34", + "0.1.0_alpha" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.0_alpha\" before \"0.1.3_alpha\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.1.3_alpha", + "0.1.0_alpha" + ] + }, + "expected_output": [ + "0.1.0_alpha", + "0.1.3_alpha" + ] + }, + { + "description": "univers Alpine treats \"0.1.0_alpha\" and \"0.1.3_alpha\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.0_alpha", + "0.1.3_alpha" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.0_alpha\" before \"0.1.0_alpha2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.1.0_alpha2", + "0.1.0_alpha" + ] + }, + "expected_output": [ + "0.1.0_alpha", + "0.1.0_alpha2" + ] + }, + { + "description": "univers Alpine treats \"0.1.0_alpha2\" and \"0.1.0_alpha\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.0_alpha2", + "0.1.0_alpha" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.0_alpha\" before \"2.2.39-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2.39-r1", + "0.1.0_alpha" + ] + }, + "expected_output": [ + "0.1.0_alpha", + "2.2.39-r1" + ] + }, + { + "description": "univers Alpine treats \"0.1.0_alpha\" and \"2.2.39-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.0_alpha", + "2.2.39-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.4-r3\" before \"2.2.39-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2.39-r1", + "1.0.4-r3" + ] + }, + "expected_output": [ + "1.0.4-r3", + "2.2.39-r1" + ] + }, + { + "description": "univers Alpine treats \"2.2.39-r1\" and \"1.0.4-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.2.39-r1", + "1.0.4-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.4-r3\" before \"1.0.4-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.4-r4", + "1.0.4-r3" + ] + }, + "expected_output": [ + "1.0.4-r3", + "1.0.4-r4" + ] + }, + { + "description": "univers Alpine treats \"1.0.4-r3\" and \"1.0.4-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.4-r3", + "1.0.4-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.4-r4\" before \"1.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.6", + "1.0.4-r4" + ] + }, + "expected_output": [ + "1.0.4-r4", + "1.6" + ] + }, + { + "description": "univers Alpine treats \"1.0.4-r4\" and \"1.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.4-r4", + "1.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2\" before \"1.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.6", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "1.6" + ] + }, + { + "description": "univers Alpine treats \"1.6\" and \"1.0.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.6", + "1.0.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7-r1\" before \"1.0.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "0.7-r1" + ] + }, + "expected_output": [ + "0.7-r1", + "1.0.2" + ] + }, + { + "description": "univers Alpine treats \"1.0.2\" and \"0.7-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "0.7-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7-r1\" before \"1.0.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.0", + "0.7-r1" + ] + }, + "expected_output": [ + "0.7-r1", + "1.0.0" + ] + }, + { + "description": "univers Alpine treats \"0.7-r1\" and \"1.0.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7-r1", + "1.0.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.0\" before \"1.0.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "1.0.0" + ] + }, + "expected_output": [ + "1.0.0", + "1.0.1" + ] + }, + { + "description": "univers Alpine treats \"1.0.0\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.0", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.1" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1_alpha1\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "1.1_alpha1" + ] + }, + "expected_output": [ + "1.1_alpha1", + "1.1" + ] + }, + { + "description": "univers Alpine treats \"1.1\" and \"1.1_alpha1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "1.1_alpha1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1_alpha1\" before \"1.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1", + "1.1_alpha1" + ] + }, + "expected_output": [ + "1.1_alpha1", + "1.2.1" + ] + }, + { + "description": "univers Alpine treats \"1.1_alpha1\" and \"1.2.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1_alpha1", + "1.2.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2\" before \"1.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1", + "1.2" + ] + }, + "expected_output": [ + "1.2", + "1.2.1" + ] + }, + { + "description": "univers Alpine treats \"1.2.1\" and \"1.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1", + "1.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2\" before \"1.3_alpha\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3_alpha", + "1.2" + ] + }, + "expected_output": [ + "1.2", + "1.3_alpha" + ] + }, + { + "description": "univers Alpine treats \"1.2\" and \"1.3_alpha\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2", + "1.3_alpha" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3_alpha\" before \"1.3_alpha2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3_alpha2", + "1.3_alpha" + ] + }, + "expected_output": [ + "1.3_alpha", + "1.3_alpha2" + ] + }, + { + "description": "univers Alpine treats \"1.3_alpha\" and \"1.3_alpha2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3_alpha", + "1.3_alpha2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3_alpha2\" before \"1.3_alpha3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3_alpha3", + "1.3_alpha2" + ] + }, + "expected_output": [ + "1.3_alpha2", + "1.3_alpha3" + ] + }, + { + "description": "univers Alpine treats \"1.3_alpha2\" and \"1.3_alpha3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3_alpha2", + "1.3_alpha3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.0\" before \"1.3_alpha8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3_alpha8", + "0.6.0" + ] + }, + "expected_output": [ + "0.6.0", + "1.3_alpha8" + ] + }, + { + "description": "univers Alpine treats \"1.3_alpha8\" and \"0.6.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3_alpha8", + "0.6.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.0\" before \"0.6.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.6.1", + "0.6.0" + ] + }, + "expected_output": [ + "0.6.0", + "0.6.1" + ] + }, + { + "description": "univers Alpine treats \"0.6.0\" and \"0.6.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.6.0", + "0.6.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.1\" before \"0.7.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.7.0", + "0.6.1" + ] + }, + "expected_output": [ + "0.6.1", + "0.7.0" + ] + }, + { + "description": "univers Alpine treats \"0.6.1\" and \"0.7.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.6.1", + "0.7.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.0\" before \"0.8_beta1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.8_beta1", + "0.7.0" + ] + }, + "expected_output": [ + "0.7.0", + "0.8_beta1" + ] + }, + { + "description": "univers Alpine treats \"0.7.0\" and \"0.8_beta1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7.0", + "0.8_beta1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8_beta1\" before \"0.8_beta2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.8_beta2", + "0.8_beta1" + ] + }, + "expected_output": [ + "0.8_beta1", + "0.8_beta2" + ] + }, + { + "description": "univers Alpine treats \"0.8_beta1\" and \"0.8_beta2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.8_beta1", + "0.8_beta2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8_beta4\" before \"4.8-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.8-r1", + "0.8_beta4" + ] + }, + "expected_output": [ + "0.8_beta4", + "4.8-r1" + ] + }, + { + "description": "univers Alpine treats \"0.8_beta4\" and \"4.8-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.8_beta4", + "4.8-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.10.18-r1\" before \"4.8-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.8-r1", + "3.10.18-r1" + ] + }, + "expected_output": [ + "3.10.18-r1", + "4.8-r1" + ] + }, + { + "description": "univers Alpine treats \"4.8-r1\" and \"3.10.18-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.8-r1", + "3.10.18-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.3.0b-r1\" before \"3.10.18-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.10.18-r1", + "2.3.0b-r1" + ] + }, + "expected_output": [ + "2.3.0b-r1", + "3.10.18-r1" + ] + }, + { + "description": "univers Alpine treats \"3.10.18-r1\" and \"2.3.0b-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.10.18-r1", + "2.3.0b-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.3.0b-r1\" before \"2.3.0b-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.3.0b-r2", + "2.3.0b-r1" + ] + }, + "expected_output": [ + "2.3.0b-r1", + "2.3.0b-r2" + ] + }, + { + "description": "univers Alpine treats \"2.3.0b-r1\" and \"2.3.0b-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.3.0b-r1", + "2.3.0b-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.3.0b-r2\" before \"2.3.0b-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.3.0b-r3", + "2.3.0b-r2" + ] + }, + "expected_output": [ + "2.3.0b-r2", + "2.3.0b-r3" + ] + }, + { + "description": "univers Alpine treats \"2.3.0b-r2\" and \"2.3.0b-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.3.0b-r2", + "2.3.0b-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.3.0b-r3\" before \"2.3.0b-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.3.0b-r4", + "2.3.0b-r3" + ] + }, + "expected_output": [ + "2.3.0b-r3", + "2.3.0b-r4" + ] + }, + { + "description": "univers Alpine treats \"2.3.0b-r3\" and \"2.3.0b-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.3.0b-r3", + "2.3.0b-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.12.1\" before \"2.3.0b-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.3.0b-r4", + "0.12.1" + ] + }, + "expected_output": [ + "0.12.1", + "2.3.0b-r4" + ] + }, + { + "description": "univers Alpine treats \"2.3.0b-r4\" and \"0.12.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.3.0b-r4", + "0.12.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.12.1\" before \"0.12.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.12.2", + "0.12.1" + ] + }, + "expected_output": [ + "0.12.1", + "0.12.2" + ] + }, + { + "description": "univers Alpine treats \"0.12.1\" and \"0.12.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.12.1", + "0.12.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.12.2\" before \"0.12.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.12.3", + "0.12.2" + ] + }, + "expected_output": [ + "0.12.2", + "0.12.3" + ] + }, + { + "description": "univers Alpine treats \"0.12.2\" and \"0.12.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.12.2", + "0.12.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.12\" before \"0.12.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.12.3", + "0.12" + ] + }, + "expected_output": [ + "0.12", + "0.12.3" + ] + }, + { + "description": "univers Alpine treats \"0.12.3\" and \"0.12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.12.3", + "0.12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.12\" before \"0.13_beta1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta1", + "0.12" + ] + }, + "expected_output": [ + "0.12", + "0.13_beta1" + ] + }, + { + "description": "univers Alpine treats \"0.12\" and \"0.13_beta1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.12", + "0.13_beta1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.13_beta1\" before \"0.13_beta2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta2", + "0.13_beta1" + ] + }, + "expected_output": [ + "0.13_beta1", + "0.13_beta2" + ] + }, + { + "description": "univers Alpine treats \"0.13_beta1\" and \"0.13_beta2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta1", + "0.13_beta2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.13_beta2\" before \"0.13_beta3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta3", + "0.13_beta2" + ] + }, + "expected_output": [ + "0.13_beta2", + "0.13_beta3" + ] + }, + { + "description": "univers Alpine treats \"0.13_beta2\" and \"0.13_beta3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta2", + "0.13_beta3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.13_beta3\" before \"0.13_beta4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta4", + "0.13_beta3" + ] + }, + "expected_output": [ + "0.13_beta3", + "0.13_beta4" + ] + }, + { + "description": "univers Alpine treats \"0.13_beta3\" and \"0.13_beta4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta3", + "0.13_beta4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.13_beta4\" before \"0.13_beta5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta5", + "0.13_beta4" + ] + }, + "expected_output": [ + "0.13_beta4", + "0.13_beta5" + ] + }, + { + "description": "univers Alpine treats \"0.13_beta4\" and \"0.13_beta5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta4", + "0.13_beta5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.12\" before \"0.13_beta5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta5", + "0.9.12" + ] + }, + "expected_output": [ + "0.9.12", + "0.13_beta5" + ] + }, + { + "description": "univers Alpine treats \"0.13_beta5\" and \"0.9.12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.13_beta5", + "0.9.12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.12\" before \"0.9.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.13", + "0.9.12" + ] + }, + "expected_output": [ + "0.9.12", + "0.9.13" + ] + }, + { + "description": "univers Alpine treats \"0.9.12\" and \"0.9.13\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.12", + "0.9.13" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.0.16\" before \"0.9.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.13", + "0.0.16" + ] + }, + "expected_output": [ + "0.0.16", + "0.9.13" + ] + }, + { + "description": "univers Alpine treats \"0.9.13\" and \"0.0.16\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.13", + "0.0.16" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.0.16\" before \"0.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.6", + "0.0.16" + ] + }, + "expected_output": [ + "0.0.16", + "0.6" + ] + }, + { + "description": "univers Alpine treats \"0.0.16\" and \"0.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.0.16", + "0.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6\" before \"2.1.13-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.13-r3", + "0.6" + ] + }, + "expected_output": [ + "0.6", + "2.1.13-r3" + ] + }, + { + "description": "univers Alpine treats \"0.6\" and \"2.1.13-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.6", + "2.1.13-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.1.13-r3\" before \"2.1.15-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.15-r2", + "2.1.13-r3" + ] + }, + "expected_output": [ + "2.1.13-r3", + "2.1.15-r2" + ] + }, + { + "description": "univers Alpine treats \"2.1.13-r3\" and \"2.1.15-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1.13-r3", + "2.1.15-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.1.15-r2\" before \"2.1.15-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.15-r3", + "2.1.15-r2" + ] + }, + "expected_output": [ + "2.1.15-r2", + "2.1.15-r3" + ] + }, + { + "description": "univers Alpine treats \"2.1.15-r2\" and \"2.1.15-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1.15-r2", + "2.1.15-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.11\" before \"2.1.15-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.15-r3", + "1.2.11" + ] + }, + "expected_output": [ + "1.2.11", + "2.1.15-r3" + ] + }, + { + "description": "univers Alpine treats \"2.1.15-r3\" and \"1.2.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1.15-r3", + "1.2.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.11\" before \"1.2.12.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12.1", + "1.2.11" + ] + }, + "expected_output": [ + "1.2.11", + "1.2.12.1" + ] + }, + { + "description": "univers Alpine treats \"1.2.11\" and \"1.2.12.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.11", + "1.2.12.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.12.1\" before \"1.2.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.13", + "1.2.12.1" + ] + }, + "expected_output": [ + "1.2.12.1", + "1.2.13" + ] + }, + { + "description": "univers Alpine treats \"1.2.12.1\" and \"1.2.13\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12.1", + "1.2.13" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.13\" before \"1.2.14-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.14-r1", + "1.2.13" + ] + }, + "expected_output": [ + "1.2.13", + "1.2.14-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.13\" and \"1.2.14-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.13", + "1.2.14-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.1\" before \"1.2.14-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.14-r1", + "0.7.1" + ] + }, + "expected_output": [ + "0.7.1", + "1.2.14-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.14-r1\" and \"0.7.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.14-r1", + "0.7.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5.4\" before \"0.7.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.7.1", + "0.5.4" + ] + }, + "expected_output": [ + "0.5.4", + "0.7.1" + ] + }, + { + "description": "univers Alpine treats \"0.7.1\" and \"0.5.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7.1", + "0.5.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5.4\" before \"0.7.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.7.0", + "0.5.4" + ] + }, + "expected_output": [ + "0.5.4", + "0.7.0" + ] + }, + { + "description": "univers Alpine treats \"0.5.4\" and \"0.7.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.5.4", + "0.7.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.0\" before \"1.2.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.13", + "0.7.0" + ] + }, + "expected_output": [ + "0.7.0", + "1.2.13" + ] + }, + { + "description": "univers Alpine treats \"0.7.0\" and \"1.2.13\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7.0", + "1.2.13" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.8\" before \"1.2.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.13", + "1.0.8" + ] + }, + "expected_output": [ + "1.0.8", + "1.2.13" + ] + }, + { + "description": "univers Alpine treats \"1.2.13\" and \"1.0.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.13", + "1.0.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.8\" before \"1.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1", + "1.0.8" + ] + }, + "expected_output": [ + "1.0.8", + "1.2.1" + ] + }, + { + "description": "univers Alpine treats \"1.0.8\" and \"1.2.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.8", + "1.2.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7-r1\" before \"1.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1", + "0.7-r1" + ] + }, + "expected_output": [ + "0.7-r1", + "1.2.1" + ] + }, + { + "description": "univers Alpine treats \"1.2.1\" and \"0.7-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1", + "0.7-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7-r1\" before \"2.4.32\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.4.32", + "0.7-r1" + ] + }, + "expected_output": [ + "0.7-r1", + "2.4.32" + ] + }, + { + "description": "univers Alpine treats \"0.7-r1\" and \"2.4.32\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7-r1", + "2.4.32" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.4.32\" before \"2.8-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8-r4", + "2.4.32" + ] + }, + "expected_output": [ + "2.4.32", + "2.8-r4" + ] + }, + { + "description": "univers Alpine treats \"2.4.32\" and \"2.8-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.4.32", + "2.8-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.6\" before \"2.8-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8-r4", + "0.9.6" + ] + }, + "expected_output": [ + "0.9.6", + "2.8-r4" + ] + }, + { + "description": "univers Alpine treats \"2.8-r4\" and \"0.9.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8-r4", + "0.9.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.0-r1\" before \"0.9.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.6", + "0.2.0-r1" + ] + }, + "expected_output": [ + "0.2.0-r1", + "0.9.6" + ] + }, + { + "description": "univers Alpine treats \"0.9.6\" and \"0.2.0-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.6", + "0.2.0-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.0-r1\" before \"3.1_p16\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.1_p16", + "0.2.0-r1" + ] + }, + "expected_output": [ + "0.2.0-r1", + "3.1_p16" + ] + }, + { + "description": "univers Alpine treats \"0.2.0-r1\" and \"3.1_p16\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.0-r1", + "3.1_p16" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.1_p16\" before \"3.1_p17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.1_p17", + "3.1_p16" + ] + }, + "expected_output": [ + "3.1_p16", + "3.1_p17" + ] + }, + { + "description": "univers Alpine treats \"3.1_p16\" and \"3.1_p17\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.1_p16", + "3.1_p17" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.06-r6\" before \"3.1_p17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.1_p17", + "1.06-r6" + ] + }, + "expected_output": [ + "1.06-r6", + "3.1_p17" + ] + }, + { + "description": "univers Alpine treats \"3.1_p17\" and \"1.06-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.1_p17", + "1.06-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.0\" before \"1.2.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2-r1", + "1.0.0" + ] + }, + "expected_output": [ + "1.0.0", + "1.2.2-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0.0\" and \"1.2.2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.0", + "1.2.2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.2\" before \"1.2.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2-r1", + "1.2.2" + ] + }, + "expected_output": [ + "1.2.2", + "1.2.2-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.2-r1\" and \"1.2.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2-r1", + "1.2.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3-r1\" before \"1.2.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2", + "0.3-r1" + ] + }, + "expected_output": [ + "0.3-r1", + "1.2.2" + ] + }, + { + "description": "univers Alpine treats \"1.2.2\" and \"0.3-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2", + "0.3-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3-r1\" before \"9.3.2-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "9.3.2-r4", + "0.3-r1" + ] + }, + "expected_output": [ + "0.3-r1", + "9.3.2-r4" + ] + }, + { + "description": "univers Alpine treats \"0.3-r1\" and \"9.3.2-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3-r1", + "9.3.2-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"9.3.2-r4\" before \"9.3.4-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "9.3.4-r2", + "9.3.2-r4" + ] + }, + "expected_output": [ + "9.3.2-r4", + "9.3.4-r2" + ] + }, + { + "description": "univers Alpine treats \"9.3.2-r4\" and \"9.3.4-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "9.3.2-r4", + "9.3.4-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"9.3.4\" before \"9.3.4-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "9.3.4-r2", + "9.3.4" + ] + }, + "expected_output": [ + "9.3.4", + "9.3.4-r2" + ] + }, + { + "description": "univers Alpine treats \"9.3.4-r2\" and \"9.3.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "9.3.4-r2", + "9.3.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"9.3.2\" before \"9.3.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "9.3.4", + "9.3.2" + ] + }, + "expected_output": [ + "9.3.2", + "9.3.4" + ] + }, + { + "description": "univers Alpine treats \"9.3.4\" and \"9.3.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "9.3.4", + "9.3.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.3\" before \"9.3.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "9.3.4", + "1.1.3" + ] + }, + "expected_output": [ + "1.1.3", + "9.3.4" + ] + }, + { + "description": "univers Alpine treats \"9.3.4\" and \"1.1.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "9.3.4", + "1.1.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.3\" before \"2.16.1-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.16.1-r3", + "1.1.3" + ] + }, + "expected_output": [ + "1.1.3", + "2.16.1-r3" + ] + }, + { + "description": "univers Alpine treats \"1.1.3\" and \"2.16.1-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.3", + "2.16.1-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.1.0-r2\" before \"2.16.1-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.16.1-r3", + "2.1.0-r2" + ] + }, + "expected_output": [ + "2.1.0-r2", + "2.16.1-r3" + ] + }, + { + "description": "univers Alpine treats \"2.16.1-r3\" and \"2.1.0-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.16.1-r3", + "2.1.0-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.1.0-r2\" before \"2.9.3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.9.3-r1", + "2.1.0-r2" + ] + }, + "expected_output": [ + "2.1.0-r2", + "2.9.3-r1" + ] + }, + { + "description": "univers Alpine treats \"2.1.0-r2\" and \"2.9.3-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1.0-r2", + "2.9.3-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9-r1\" before \"2.9.3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.9.3-r1", + "0.9-r1" + ] + }, + "expected_output": [ + "0.9-r1", + "2.9.3-r1" + ] + }, + { + "description": "univers Alpine treats \"2.9.3-r1\" and \"0.9-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.9.3-r1", + "0.9-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8-r1\" before \"0.9-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9-r1", + "0.8-r1" + ] + }, + "expected_output": [ + "0.8-r1", + "0.9-r1" + ] + }, + { + "description": "univers Alpine treats \"0.9-r1\" and \"0.8-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9-r1", + "0.8-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8-r1\" before \"1.0.6-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.6-r3", + "0.8-r1" + ] + }, + "expected_output": [ + "0.8-r1", + "1.0.6-r3" + ] + }, + { + "description": "univers Alpine treats \"0.8-r1\" and \"1.0.6-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.8-r1", + "1.0.6-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.11\" before \"1.0.6-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.6-r3", + "0.11" + ] + }, + "expected_output": [ + "0.11", + "1.0.6-r3" + ] + }, + { + "description": "univers Alpine treats \"1.0.6-r3\" and \"0.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.6-r3", + "0.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.11\" before \"0.12\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.12", + "0.11" + ] + }, + "expected_output": [ + "0.11", + "0.12" + ] + }, + { + "description": "univers Alpine treats \"0.11\" and \"0.12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.11", + "0.12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.12\" before \"1.2.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1-r1", + "0.12" + ] + }, + "expected_output": [ + "0.12", + "1.2.1-r1" + ] + }, + { + "description": "univers Alpine treats \"0.12\" and \"1.2.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.12", + "1.2.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.1-r1\" before \"1.2.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2.1", + "1.2.1-r1" + ] + }, + "expected_output": [ + "1.2.1-r1", + "1.2.2.1" + ] + }, + { + "description": "univers Alpine treats \"1.2.1-r1\" and \"1.2.2.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1-r1", + "1.2.2.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.2.1\" before \"1.4.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4.1-r1", + "1.2.2.1" + ] + }, + "expected_output": [ + "1.2.2.1", + "1.4.1-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.2.1\" and \"1.4.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2.1", + "1.4.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4.1-r1\" before \"1.4.1-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4.1-r2", + "1.4.1-r1" + ] + }, + "expected_output": [ + "1.4.1-r1", + "1.4.1-r2" + ] + }, + { + "description": "univers Alpine treats \"1.4.1-r1\" and \"1.4.1-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4.1-r1", + "1.4.1-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.2\" before \"1.4.1-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4.1-r2", + "1.2.2" + ] + }, + "expected_output": [ + "1.2.2", + "1.4.1-r2" + ] + }, + { + "description": "univers Alpine treats \"1.4.1-r2\" and \"1.2.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4.1-r2", + "1.2.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.2\" before \"1.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3", + "1.2.2" + ] + }, + "expected_output": [ + "1.2.2", + "1.3" + ] + }, + { + "description": "univers Alpine treats \"1.2.2\" and \"1.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2", + "1.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.3-r6\" before \"1.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3", + "1.0.3-r6" + ] + }, + "expected_output": [ + "1.0.3-r6", + "1.3" + ] + }, + { + "description": "univers Alpine treats \"1.3\" and \"1.0.3-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3", + "1.0.3-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.3-r6\" before \"1.0.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.4", + "1.0.3-r6" + ] + }, + "expected_output": [ + "1.0.3-r6", + "1.0.4" + ] + }, + { + "description": "univers Alpine treats \"1.0.3-r6\" and \"1.0.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.3-r6", + "1.0.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.4\" before \"2.59\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.59", + "1.0.4" + ] + }, + "expected_output": [ + "1.0.4", + "2.59" + ] + }, + { + "description": "univers Alpine treats \"1.0.4\" and \"2.59\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.4", + "2.59" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.59\" before \"20050718-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20050718-r1", + "2.59" + ] + }, + "expected_output": [ + "2.59", + "20050718-r1" + ] + }, + { + "description": "univers Alpine treats \"2.59\" and \"20050718-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.59", + "20050718-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"20050718-r1\" before \"20050718-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20050718-r2", + "20050718-r1" + ] + }, + "expected_output": [ + "20050718-r1", + "20050718-r2" + ] + }, + { + "description": "univers Alpine treats \"20050718-r1\" and \"20050718-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20050718-r1", + "20050718-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.9.8-r5\" before \"20050718-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20050718-r2", + "3.9.8-r5" + ] + }, + "expected_output": [ + "3.9.8-r5", + "20050718-r2" + ] + }, + { + "description": "univers Alpine treats \"20050718-r2\" and \"3.9.8-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20050718-r2", + "3.9.8-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.01.01_alpha10\" before \"3.9.8-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.9.8-r5", + "2.01.01_alpha10" + ] + }, + "expected_output": [ + "2.01.01_alpha10", + "3.9.8-r5" + ] + }, + { + "description": "univers Alpine treats \"3.9.8-r5\" and \"2.01.01_alpha10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.9.8-r5", + "2.01.01_alpha10" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.94\" before \"2.01.01_alpha10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.01.01_alpha10", + "0.94" + ] + }, + "expected_output": [ + "0.94", + "2.01.01_alpha10" + ] + }, + { + "description": "univers Alpine treats \"2.01.01_alpha10\" and \"0.94\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.01.01_alpha10", + "0.94" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.94\" before \"1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0", + "0.94" + ] + }, + "expected_output": [ + "0.94", + "1.0" + ] + }, + { + "description": "univers Alpine treats \"0.94\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.94", + "1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.99.3.20040818\" before \"1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0", + "0.99.3.20040818" + ] + }, + "expected_output": [ + "0.99.3.20040818", + "1.0" + ] + }, + { + "description": "univers Alpine treats \"1.0\" and \"0.99.3.20040818\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0", + "0.99.3.20040818" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7\" before \"0.99.3.20040818\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.99.3.20040818", + "0.7" + ] + }, + "expected_output": [ + "0.7", + "0.99.3.20040818" + ] + }, + { + "description": "univers Alpine treats \"0.99.3.20040818\" and \"0.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.99.3.20040818", + "0.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7\" before \"1.21-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.21-r1", + "0.7" + ] + }, + "expected_output": [ + "0.7", + "1.21-r1" + ] + }, + { + "description": "univers Alpine treats \"0.7\" and \"1.21-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7", + "1.21-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.13\" before \"1.21-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.21-r1", + "0.13" + ] + }, + "expected_output": [ + "0.13", + "1.21-r1" + ] + }, + { + "description": "univers Alpine treats \"1.21-r1\" and \"0.13\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.21-r1", + "0.13" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.13\" before \"0.90.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.90.1-r1", + "0.13" + ] + }, + "expected_output": [ + "0.13", + "0.90.1-r1" + ] + }, + { + "description": "univers Alpine treats \"0.13\" and \"0.90.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.13", + "0.90.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.10.2\" before \"0.90.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.90.1-r1", + "0.10.2" + ] + }, + "expected_output": [ + "0.10.2", + "0.90.1-r1" + ] + }, + { + "description": "univers Alpine treats \"0.90.1-r1\" and \"0.10.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.90.1-r1", + "0.10.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.10.2\" before \"0.10.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.10.3", + "0.10.2" + ] + }, + "expected_output": [ + "0.10.2", + "0.10.3" + ] + }, + { + "description": "univers Alpine treats \"0.10.2\" and \"0.10.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.10.2", + "0.10.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.10.3\" before \"1.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.6", + "0.10.3" + ] + }, + "expected_output": [ + "0.10.3", + "1.6" + ] + }, + { + "description": "univers Alpine treats \"0.10.3\" and \"1.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.10.3", + "1.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.6\" before \"1.39\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.39", + "1.6" + ] + }, + "expected_output": [ + "1.6", + "1.39" + ] + }, + { + "description": "univers Alpine treats \"1.6\" and \"1.39\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.6", + "1.39" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.00_beta2\" before \"1.39\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.39", + "1.00_beta2" + ] + }, + "expected_output": [ + "1.00_beta2", + "1.39" + ] + }, + { + "description": "univers Alpine treats \"1.39\" and \"1.00_beta2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.39", + "1.00_beta2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.2\" before \"1.00_beta2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.00_beta2", + "0.9.2" + ] + }, + "expected_output": [ + "0.9.2", + "1.00_beta2" + ] + }, + { + "description": "univers Alpine treats \"1.00_beta2\" and \"0.9.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.00_beta2", + "0.9.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.2\" before \"5.94-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.94-r1", + "0.9.2" + ] + }, + "expected_output": [ + "0.9.2", + "5.94-r1" + ] + }, + { + "description": "univers Alpine treats \"0.9.2\" and \"5.94-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.2", + "5.94-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.94-r1\" before \"6.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.4", + "5.94-r1" + ] + }, + "expected_output": [ + "5.94-r1", + "6.4" + ] + }, + { + "description": "univers Alpine treats \"5.94-r1\" and \"6.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.94-r1", + "6.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6-r5\" before \"6.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.4", + "2.6-r5" + ] + }, + "expected_output": [ + "2.6-r5", + "6.4" + ] + }, + { + "description": "univers Alpine treats \"6.4\" and \"2.6-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.4", + "2.6-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4\" before \"2.6-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6-r5", + "1.4" + ] + }, + "expected_output": [ + "1.4", + "2.6-r5" + ] + }, + { + "description": "univers Alpine treats \"2.6-r5\" and \"1.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6-r5", + "1.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4\" before \"2.8.9-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.9-r1", + "1.4" + ] + }, + "expected_output": [ + "1.4", + "2.8.9-r1" + ] + }, + { + "description": "univers Alpine treats \"1.4\" and \"2.8.9-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4", + "2.8.9-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.8.9\" before \"2.8.9-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.9-r1", + "2.8.9" + ] + }, + "expected_output": [ + "2.8.9", + "2.8.9-r1" + ] + }, + { + "description": "univers Alpine treats \"2.8.9-r1\" and \"2.8.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8.9-r1", + "2.8.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1\" before \"2.8.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.9", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "2.8.9" + ] + }, + { + "description": "univers Alpine treats \"2.8.9\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8.9", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.3-r2\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "1.0.3-r2" + ] + }, + "expected_output": [ + "1.0.3-r2", + "1.1" + ] + }, + { + "description": "univers Alpine treats \"1.1\" and \"1.0.3-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "1.0.3-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.3-r2\" before \"1.3.4-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.4-r3", + "1.0.3-r2" + ] + }, + "expected_output": [ + "1.0.3-r2", + "1.3.4-r3" + ] + }, + { + "description": "univers Alpine treats \"1.0.3-r2\" and \"1.3.4-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.3-r2", + "1.3.4-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.4-r3\" before \"2.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2", + "1.3.4-r3" + ] + }, + "expected_output": [ + "1.3.4-r3", + "2.2" + ] + }, + { + "description": "univers Alpine treats \"1.3.4-r3\" and \"2.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.4-r3", + "2.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.6\" before \"2.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2", + "1.2.6" + ] + }, + "expected_output": [ + "1.2.6", + "2.2" + ] + }, + { + "description": "univers Alpine treats \"2.2\" and \"1.2.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.2", + "1.2.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.6\" before \"7.15.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "7.15.1-r1", + "1.2.6" + ] + }, + "expected_output": [ + "1.2.6", + "7.15.1-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.6\" and \"7.15.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.6", + "7.15.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.02\" before \"7.15.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "7.15.1-r1", + "1.02" + ] + }, + "expected_output": [ + "1.02", + "7.15.1-r1" + ] + }, + { + "description": "univers Alpine treats \"7.15.1-r1\" and \"1.02\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "7.15.1-r1", + "1.02" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.02\" before \"1.03-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.03-r1", + "1.02" + ] + }, + "expected_output": [ + "1.02", + "1.03-r1" + ] + }, + { + "description": "univers Alpine treats \"1.02\" and \"1.03-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.02", + "1.03-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.03-r1\" before \"1.12.12-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.12.12-r2", + "1.03-r1" + ] + }, + "expected_output": [ + "1.03-r1", + "1.12.12-r2" + ] + }, + { + "description": "univers Alpine treats \"1.03-r1\" and \"1.12.12-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.03-r1", + "1.12.12-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.12.12-r2\" before \"2.8.0.6-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.0.6-r1", + "1.12.12-r2" + ] + }, + "expected_output": [ + "1.12.12-r2", + "2.8.0.6-r1" + ] + }, + { + "description": "univers Alpine treats \"1.12.12-r2\" and \"2.8.0.6-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.12.12-r2", + "2.8.0.6-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5.2.7\" before \"2.8.0.6-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.0.6-r1", + "0.5.2.7" + ] + }, + "expected_output": [ + "0.5.2.7", + "2.8.0.6-r1" + ] + }, + { + "description": "univers Alpine treats \"2.8.0.6-r1\" and \"0.5.2.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8.0.6-r1", + "0.5.2.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5.2.7\" before \"4.2.52_p2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.2.52_p2-r1", + "0.5.2.7" + ] + }, + "expected_output": [ + "0.5.2.7", + "4.2.52_p2-r1" + ] + }, + { + "description": "univers Alpine treats \"0.5.2.7\" and \"4.2.52_p2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.5.2.7", + "4.2.52_p2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.2.52_p2-r1\" before \"4.2.52_p4-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.2.52_p4-r2", + "4.2.52_p2-r1" + ] + }, + "expected_output": [ + "4.2.52_p2-r1", + "4.2.52_p4-r2" + ] + }, + { + "description": "univers Alpine treats \"4.2.52_p2-r1\" and \"4.2.52_p4-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.2.52_p2-r1", + "4.2.52_p4-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.02.07\" before \"4.2.52_p4-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.2.52_p4-r2", + "1.02.07" + ] + }, + "expected_output": [ + "1.02.07", + "4.2.52_p4-r2" + ] + }, + { + "description": "univers Alpine treats \"4.2.52_p4-r2\" and \"1.02.07\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.2.52_p4-r2", + "1.02.07" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.02.07\" before \"1.02.10-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.02.10-r1", + "1.02.07" + ] + }, + "expected_output": [ + "1.02.07", + "1.02.10-r1" + ] + }, + { + "description": "univers Alpine treats \"1.02.07\" and \"1.02.10-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.02.07", + "1.02.10-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.02.10-r1\" before \"3.0.3-r9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.0.3-r9", + "1.02.10-r1" + ] + }, + "expected_output": [ + "1.02.10-r1", + "3.0.3-r9" + ] + }, + { + "description": "univers Alpine treats \"1.02.10-r1\" and \"3.0.3-r9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.02.10-r1", + "3.0.3-r9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.5-r1\" before \"3.0.3-r9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.0.3-r9", + "2.0.5-r1" + ] + }, + "expected_output": [ + "2.0.5-r1", + "3.0.3-r9" + ] + }, + { + "description": "univers Alpine treats \"3.0.3-r9\" and \"2.0.5-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.0.3-r9", + "2.0.5-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.5-r1\" before \"4.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.5", + "2.0.5-r1" + ] + }, + "expected_output": [ + "2.0.5-r1", + "4.5" + ] + }, + { + "description": "univers Alpine treats \"2.0.5-r1\" and \"4.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.5-r1", + "4.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.8.7-r1\" before \"4.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.5", + "2.8.7-r1" + ] + }, + "expected_output": [ + "2.8.7-r1", + "4.5" + ] + }, + { + "description": "univers Alpine treats \"4.5\" and \"2.8.7-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.5", + "2.8.7-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.5\" before \"2.8.7-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.7-r1", + "1.0.5" + ] + }, + "expected_output": [ + "1.0.5", + "2.8.7-r1" + ] + }, + { + "description": "univers Alpine treats \"2.8.7-r1\" and \"1.0.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8.7-r1", + "1.0.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.5\" before \"8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8", + "1.0.5" + ] + }, + "expected_output": [ + "1.0.5", + "8" + ] + }, + { + "description": "univers Alpine treats \"1.0.5\" and \"8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.5", + "8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"8\" before \"9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "9", + "8" + ] + }, + "expected_output": [ + "8", + "9" + ] + }, + { + "description": "univers Alpine treats \"8\" and \"9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "8", + "9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.18.3-r10\" before \"9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "9", + "2.18.3-r10" + ] + }, + "expected_output": [ + "2.18.3-r10", + "9" + ] + }, + { + "description": "univers Alpine treats \"9\" and \"2.18.3-r10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "9", + "2.18.3-r10" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.05-r18\" before \"2.18.3-r10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.18.3-r10", + "1.05-r18" + ] + }, + "expected_output": [ + "1.05-r18", + "2.18.3-r10" + ] + }, + { + "description": "univers Alpine treats \"2.18.3-r10\" and \"1.05-r18\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.18.3-r10", + "1.05-r18" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.05-r18\" before \"1.05-r19\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.05-r19", + "1.05-r18" + ] + }, + "expected_output": [ + "1.05-r18", + "1.05-r19" + ] + }, + { + "description": "univers Alpine treats \"1.05-r18\" and \"1.05-r19\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.05-r18", + "1.05-r19" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.05-r19\" before \"2.2.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2.5", + "1.05-r19" + ] + }, + "expected_output": [ + "1.05-r19", + "2.2.5" + ] + }, + { + "description": "univers Alpine treats \"1.05-r19\" and \"2.2.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.05-r19", + "2.2.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.2.5\" before \"2.8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8", + "2.2.5" + ] + }, + "expected_output": [ + "2.2.5", + "2.8" + ] + }, + { + "description": "univers Alpine treats \"2.2.5\" and \"2.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.2.5", + "2.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.8\" before \"2.20.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.20.1", + "2.8" + ] + }, + "expected_output": [ + "2.8", + "2.20.1" + ] + }, + { + "description": "univers Alpine treats \"2.8\" and \"2.20.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8", + "2.20.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.20.1\" before \"2.20.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.20.3", + "2.20.1" + ] + }, + "expected_output": [ + "2.20.1", + "2.20.3" + ] + }, + { + "description": "univers Alpine treats \"2.20.1\" and \"2.20.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.20.1", + "2.20.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.20.3\" before \"2.31\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.31", + "2.20.3" + ] + }, + "expected_output": [ + "2.20.3", + "2.31" + ] + }, + { + "description": "univers Alpine treats \"2.20.3\" and \"2.31\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.20.3", + "2.31" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.31\" before \"2.34\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.34", + "2.31" + ] + }, + "expected_output": [ + "2.31", + "2.34" + ] + }, + { + "description": "univers Alpine treats \"2.31\" and \"2.34\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.31", + "2.34" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.34\" before \"2.38\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.38", + "2.34" + ] + }, + "expected_output": [ + "2.34", + "2.38" + ] + }, + { + "description": "univers Alpine treats \"2.34\" and \"2.38\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.34", + "2.38" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.38\" before \"20050405\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20050405", + "2.38" + ] + }, + "expected_output": [ + "2.38", + "20050405" + ] + }, + { + "description": "univers Alpine treats \"2.38\" and \"20050405\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.38", + "20050405" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.8\" before \"20050405\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20050405", + "1.8" + ] + }, + "expected_output": [ + "1.8", + "20050405" + ] + }, + { + "description": "univers Alpine treats \"20050405\" and \"1.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20050405", + "1.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.8\" before \"2.11-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.11-r1", + "1.8" + ] + }, + "expected_output": [ + "1.8", + "2.11-r1" + ] + }, + { + "description": "univers Alpine treats \"1.8\" and \"2.11-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.8", + "2.11-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.11\" before \"2.11-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.11-r1", + "2.11" + ] + }, + "expected_output": [ + "2.11", + "2.11-r1" + ] + }, + { + "description": "univers Alpine treats \"2.11-r1\" and \"2.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.11-r1", + "2.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.6-r3\" before \"2.11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.11", + "0.1.6-r3" + ] + }, + "expected_output": [ + "0.1.6-r3", + "2.11" + ] + }, + { + "description": "univers Alpine treats \"2.11\" and \"0.1.6-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.11", + "0.1.6-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.6-r3\" before \"0.47-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.47-r1", + "0.1.6-r3" + ] + }, + "expected_output": [ + "0.1.6-r3", + "0.47-r1" + ] + }, + { + "description": "univers Alpine treats \"0.1.6-r3\" and \"0.47-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.6-r3", + "0.47-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.47-r1\" before \"0.49\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.49", + "0.47-r1" + ] + }, + "expected_output": [ + "0.47-r1", + "0.49" + ] + }, + { + "description": "univers Alpine treats \"0.47-r1\" and \"0.49\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.47-r1", + "0.49" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.49\" before \"3.6.8-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.6.8-r2", + "0.49" + ] + }, + "expected_output": [ + "0.49", + "3.6.8-r2" + ] + }, + { + "description": "univers Alpine treats \"0.49\" and \"3.6.8-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.49", + "3.6.8-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.39\" before \"3.6.8-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.6.8-r2", + "1.39" + ] + }, + "expected_output": [ + "1.39", + "3.6.8-r2" + ] + }, + { + "description": "univers Alpine treats \"3.6.8-r2\" and \"1.39\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.6.8-r2", + "1.39" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.39\" before \"2.43\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.43", + "1.39" + ] + }, + "expected_output": [ + "1.39", + "2.43" + ] + }, + { + "description": "univers Alpine treats \"1.39\" and \"2.43\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.39", + "2.43" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.6-r1\" before \"2.43\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.43", + "2.0.6-r1" + ] + }, + "expected_output": [ + "2.0.6-r1", + "2.43" + ] + }, + { + "description": "univers Alpine treats \"2.43\" and \"2.0.6-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.43", + "2.0.6-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2-r6\" before \"2.0.6-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.6-r1", + "0.2-r6" + ] + }, + "expected_output": [ + "0.2-r6", + "2.0.6-r1" + ] + }, + { + "description": "univers Alpine treats \"2.0.6-r1\" and \"0.2-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.6-r1", + "0.2-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2-r6\" before \"0.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.4", + "0.2-r6" + ] + }, + "expected_output": [ + "0.2-r6", + "0.4" + ] + }, + { + "description": "univers Alpine treats \"0.2-r6\" and \"0.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2-r6", + "0.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.4\" before \"1.0.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.0", + "0.4" + ] + }, + "expected_output": [ + "0.4", + "1.0.0" + ] + }, + { + "description": "univers Alpine treats \"0.4\" and \"1.0.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.4", + "1.0.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.0\" before \"10-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "10-r1", + "1.0.0" + ] + }, + "expected_output": [ + "1.0.0", + "10-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0.0\" and \"10-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.0", + "10-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4\" before \"10-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "10-r1", + "4" + ] + }, + "expected_output": [ + "4", + "10-r1" + ] + }, + { + "description": "univers Alpine treats \"10-r1\" and \"4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "10-r1", + "4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.3-r2\" before \"4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4", + "0.7.3-r2" + ] + }, + "expected_output": [ + "0.7.3-r2", + "4" + ] + }, + { + "description": "univers Alpine treats \"4\" and \"0.7.3-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4", + "0.7.3-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.3\" before \"0.7.3-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.7.3-r2", + "0.7.3" + ] + }, + "expected_output": [ + "0.7.3", + "0.7.3-r2" + ] + }, + { + "description": "univers Alpine treats \"0.7.3-r2\" and \"0.7.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7.3-r2", + "0.7.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.3\" before \"1.95.8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.95.8", + "0.7.3" + ] + }, + "expected_output": [ + "0.7.3", + "1.95.8" + ] + }, + { + "description": "univers Alpine treats \"0.7.3\" and \"1.95.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7.3", + "1.95.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.19\" before \"1.95.8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.95.8", + "1.1.19" + ] + }, + "expected_output": [ + "1.1.19", + "1.95.8" + ] + }, + { + "description": "univers Alpine treats \"1.95.8\" and \"1.1.19\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.95.8", + "1.1.19" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.5\" before \"1.1.19\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.19", + "1.1.5" + ] + }, + "expected_output": [ + "1.1.5", + "1.1.19" + ] + }, + { + "description": "univers Alpine treats \"1.1.19\" and \"1.1.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.19", + "1.1.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.5\" before \"6.3.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.3.2-r1", + "1.1.5" + ] + }, + "expected_output": [ + "1.1.5", + "6.3.2-r1" + ] + }, + { + "description": "univers Alpine treats \"1.1.5\" and \"6.3.2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.5", + "6.3.2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"6.3.2-r1\" before \"6.3.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.3.3", + "6.3.2-r1" + ] + }, + "expected_output": [ + "6.3.2-r1", + "6.3.3" + ] + }, + { + "description": "univers Alpine treats \"6.3.2-r1\" and \"6.3.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.3.2-r1", + "6.3.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.17-r1\" before \"6.3.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.3.3", + "4.17-r1" + ] + }, + "expected_output": [ + "4.17-r1", + "6.3.3" + ] + }, + { + "description": "univers Alpine treats \"6.3.3\" and \"4.17-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.3.3", + "4.17-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.17-r1\" before \"4.18\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.18", + "4.17-r1" + ] + }, + "expected_output": [ + "4.17-r1", + "4.18" + ] + }, + { + "description": "univers Alpine treats \"4.17-r1\" and \"4.18\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.17-r1", + "4.18" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.18\" before \"4.19\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.19", + "4.18" + ] + }, + "expected_output": [ + "4.18", + "4.19" + ] + }, + { + "description": "univers Alpine treats \"4.18\" and \"4.19\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.18", + "4.19" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.3.0\" before \"4.19\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.19", + "4.3.0" + ] + }, + "expected_output": [ + "4.3.0", + "4.19" + ] + }, + { + "description": "univers Alpine treats \"4.19\" and \"4.3.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.19", + "4.3.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.3.0\" before \"4.3.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.3.2-r1", + "4.3.0" + ] + }, + "expected_output": [ + "4.3.0", + "4.3.2-r1" + ] + }, + { + "description": "univers Alpine treats \"4.3.0\" and \"4.3.2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.3.0", + "4.3.2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.3.2\" before \"4.3.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.3.2-r1", + "4.3.2" + ] + }, + "expected_output": [ + "4.3.2", + "4.3.2-r1" + ] + }, + { + "description": "univers Alpine treats \"4.3.2-r1\" and \"4.3.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.3.2-r1", + "4.3.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.68-r3\" before \"4.3.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.3.2", + "0.68-r3" + ] + }, + "expected_output": [ + "0.68-r3", + "4.3.2" + ] + }, + { + "description": "univers Alpine treats \"4.3.2\" and \"0.68-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.3.2", + "0.68-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.68-r3\" before \"1.0.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.0", + "0.68-r3" + ] + }, + "expected_output": [ + "0.68-r3", + "1.0.0" + ] + }, + { + "description": "univers Alpine treats \"0.68-r3\" and \"1.0.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.68-r3", + "1.0.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"2.3.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.3.2-r1", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "2.3.2-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"2.3.2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "2.3.2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.3.2-r1\" before \"2.4.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.4.2", + "2.3.2-r1" + ] + }, + "expected_output": [ + "2.3.2-r1", + "2.4.2" + ] + }, + { + "description": "univers Alpine treats \"2.3.2-r1\" and \"2.4.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.3.2-r1", + "2.4.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.4.2\" before \"20060720\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20060720", + "2.4.2" + ] + }, + "expected_output": [ + "2.4.2", + "20060720" + ] + }, + { + "description": "univers Alpine treats \"2.4.2\" and \"20060720\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.4.2", + "20060720" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.0.20060720\" before \"20060720\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20060720", + "3.0.20060720" + ] + }, + "expected_output": [ + "3.0.20060720", + "20060720" + ] + }, + { + "description": "univers Alpine treats \"20060720\" and \"3.0.20060720\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20060720", + "3.0.20060720" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1\" before \"20060720\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20060720", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "20060720" + ] + }, + { + "description": "univers Alpine treats \"20060720\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20060720", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1\" before \"1.1.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1-r1", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "1.1.1-r1" + ] + }, + { + "description": "univers Alpine treats \"1.1\" and \"1.1.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "1.1.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.1-r1\" before \"1.1.3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.3-r1", + "1.1.1-r1" + ] + }, + "expected_output": [ + "1.1.1-r1", + "1.1.3-r1" + ] + }, + { + "description": "univers Alpine treats \"1.1.1-r1\" and \"1.1.3-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1-r1", + "1.1.3-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.3-r1\" before \"1.1.3-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.3-r2", + "1.1.3-r1" + ] + }, + "expected_output": [ + "1.1.3-r1", + "1.1.3-r2" + ] + }, + { + "description": "univers Alpine treats \"1.1.3-r1\" and \"1.1.3-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.3-r1", + "1.1.3-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.3-r2\" before \"2.1.10-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.10-r2", + "1.1.3-r2" + ] + }, + "expected_output": [ + "1.1.3-r2", + "2.1.10-r2" + ] + }, + { + "description": "univers Alpine treats \"1.1.3-r2\" and \"2.1.10-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.3-r2", + "2.1.10-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.18-r2\" before \"2.1.10-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.10-r2", + "0.7.18-r2" + ] + }, + "expected_output": [ + "0.7.18-r2", + "2.1.10-r2" + ] + }, + { + "description": "univers Alpine treats \"2.1.10-r2\" and \"0.7.18-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1.10-r2", + "0.7.18-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.18-r2\" before \"0.17-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.17-r6", + "0.7.18-r2" + ] + }, + "expected_output": [ + "0.7.18-r2", + "0.17-r6" + ] + }, + { + "description": "univers Alpine treats \"0.7.18-r2\" and \"0.17-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7.18-r2", + "0.17-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.17-r6\" before \"2.6.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1", + "0.17-r6" + ] + }, + "expected_output": [ + "0.17-r6", + "2.6.1" + ] + }, + { + "description": "univers Alpine treats \"0.17-r6\" and \"2.6.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.17-r6", + "2.6.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.1\" before \"2.6.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.3", + "2.6.1" + ] + }, + "expected_output": [ + "2.6.1", + "2.6.3" + ] + }, + { + "description": "univers Alpine treats \"2.6.1\" and \"2.6.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1", + "2.6.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.3\" before \"3.1.5-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.1.5-r2", + "2.6.3" + ] + }, + "expected_output": [ + "2.6.3", + "3.1.5-r2" + ] + }, + { + "description": "univers Alpine treats \"2.6.3\" and \"3.1.5-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.3", + "3.1.5-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.1.5-r2\" before \"3.4.6-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.4.6-r1", + "3.1.5-r2" + ] + }, + "expected_output": [ + "3.1.5-r2", + "3.4.6-r1" + ] + }, + { + "description": "univers Alpine treats \"3.1.5-r2\" and \"3.4.6-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.1.5-r2", + "3.4.6-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.4.6-r1\" before \"3.4.6-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.4.6-r2", + "3.4.6-r1" + ] + }, + "expected_output": [ + "3.4.6-r1", + "3.4.6-r2" + ] + }, + { + "description": "univers Alpine treats \"3.4.6-r1\" and \"3.4.6-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.4.6-r1", + "3.4.6-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.33\" before \"3.4.6-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.4.6-r2", + "2.0.33" + ] + }, + "expected_output": [ + "2.0.33", + "3.4.6-r2" + ] + }, + { + "description": "univers Alpine treats \"3.4.6-r2\" and \"2.0.33\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.4.6-r2", + "2.0.33" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.33\" before \"2.0.34\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.34", + "2.0.33" + ] + }, + "expected_output": [ + "2.0.33", + "2.0.34" + ] + }, + { + "description": "univers Alpine treats \"2.0.33\" and \"2.0.34\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.33", + "2.0.34" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.8.3-r2\" before \"2.0.34\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.34", + "1.8.3-r2" + ] + }, + "expected_output": [ + "1.8.3-r2", + "2.0.34" + ] + }, + { + "description": "univers Alpine treats \"2.0.34\" and \"1.8.3-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.34", + "1.8.3-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.8.3-r2\" before \"1.8.3-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.8.3-r3", + "1.8.3-r2" + ] + }, + "expected_output": [ + "1.8.3-r2", + "1.8.3-r3" + ] + }, + { + "description": "univers Alpine treats \"1.8.3-r2\" and \"1.8.3-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.8.3-r2", + "1.8.3-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.8.3-r3\" before \"4.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1", + "1.8.3-r3" + ] + }, + "expected_output": [ + "1.8.3-r3", + "4.1" + ] + }, + { + "description": "univers Alpine treats \"1.8.3-r3\" and \"4.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.8.3-r3", + "4.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.1\" before \"8.54\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.54", + "4.1" + ] + }, + "expected_output": [ + "4.1", + "8.54" + ] + }, + { + "description": "univers Alpine treats \"4.1\" and \"8.54\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.1", + "8.54" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.1.4\" before \"8.54\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.54", + "4.1.4" + ] + }, + "expected_output": [ + "4.1.4", + "8.54" + ] + }, + { + "description": "univers Alpine treats \"8.54\" and \"4.1.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "8.54", + "4.1.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.10-r5\" before \"4.1.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1.4", + "1.2.10-r5" + ] + }, + "expected_output": [ + "1.2.10-r5", + "4.1.4" + ] + }, + { + "description": "univers Alpine treats \"4.1.4\" and \"1.2.10-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.1.4", + "1.2.10-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.10-r5\" before \"4.1.4-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1.4-r3", + "1.2.10-r5" + ] + }, + "expected_output": [ + "1.2.10-r5", + "4.1.4-r3" + ] + }, + { + "description": "univers Alpine treats \"1.2.10-r5\" and \"4.1.4-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.10-r5", + "4.1.4-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.1.4-r3\" before \"4.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.2.1", + "4.1.4-r3" + ] + }, + "expected_output": [ + "4.1.4-r3", + "4.2.1" + ] + }, + { + "description": "univers Alpine treats \"4.1.4-r3\" and \"4.2.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.1.4-r3", + "4.2.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.1.0\" before \"4.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.2.1", + "4.1.0" + ] + }, + "expected_output": [ + "4.1.0", + "4.2.1" + ] + }, + { + "description": "univers Alpine treats \"4.2.1\" and \"4.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.2.1", + "4.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.1.0\" before \"8.11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.11", + "4.1.0" + ] + }, + "expected_output": [ + "4.1.0", + "8.11" + ] + }, + { + "description": "univers Alpine treats \"4.1.0\" and \"8.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.1.0", + "8.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4.4-r1\" before \"8.11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.11", + "1.4.4-r1" + ] + }, + "expected_output": [ + "1.4.4-r1", + "8.11" + ] + }, + { + "description": "univers Alpine treats \"8.11\" and \"1.4.4-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "8.11", + "1.4.4-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4.4-r1\" before \"2.1.9.200602141850\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.9.200602141850", + "1.4.4-r1" + ] + }, + "expected_output": [ + "1.4.4-r1", + "2.1.9.200602141850" + ] + }, + { + "description": "univers Alpine treats \"1.4.4-r1\" and \"2.1.9.200602141850\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4.4-r1", + "2.1.9.200602141850" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.6\" before \"2.1.9.200602141850\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.9.200602141850", + "1.6" + ] + }, + "expected_output": [ + "1.6", + "2.1.9.200602141850" + ] + }, + { + "description": "univers Alpine treats \"2.1.9.200602141850\" and \"1.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1.9.200602141850", + "1.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.6\" before \"2.5.1-r8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.5.1-r8", + "1.6" + ] + }, + "expected_output": [ + "1.6", + "2.5.1-r8" + ] + }, + { + "description": "univers Alpine treats \"1.6\" and \"2.5.1-r8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.6", + "2.5.1-r8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.5.1-r8\" before \"2.5.1a-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.5.1a-r1", + "2.5.1-r8" + ] + }, + "expected_output": [ + "2.5.1-r8", + "2.5.1a-r1" + ] + }, + { + "description": "univers Alpine treats \"2.5.1-r8\" and \"2.5.1a-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.5.1-r8", + "2.5.1a-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.19.2-r1\" before \"2.5.1a-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.5.1a-r1", + "1.19.2-r1" + ] + }, + "expected_output": [ + "1.19.2-r1", + "2.5.1a-r1" + ] + }, + { + "description": "univers Alpine treats \"2.5.1a-r1\" and \"1.19.2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.5.1a-r1", + "1.19.2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.97-r2\" before \"1.19.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.19.2-r1", + "0.97-r2" + ] + }, + "expected_output": [ + "0.97-r2", + "1.19.2-r1" + ] + }, + { + "description": "univers Alpine treats \"1.19.2-r1\" and \"0.97-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.19.2-r1", + "0.97-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.97-r2\" before \"0.97-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.97-r3", + "0.97-r2" + ] + }, + "expected_output": [ + "0.97-r2", + "0.97-r3" + ] + }, + { + "description": "univers Alpine treats \"0.97-r2\" and \"0.97-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.97-r2", + "0.97-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.97-r3\" before \"1.3.5-r10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r10", + "0.97-r3" + ] + }, + "expected_output": [ + "0.97-r3", + "1.3.5-r10" + ] + }, + { + "description": "univers Alpine treats \"0.97-r3\" and \"1.3.5-r10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.97-r3", + "1.3.5-r10" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.5-r8\" before \"1.3.5-r10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r10", + "1.3.5-r8" + ] + }, + "expected_output": [ + "1.3.5-r8", + "1.3.5-r10" + ] + }, + { + "description": "univers Alpine treats \"1.3.5-r10\" and \"1.3.5-r8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r10", + "1.3.5-r8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.5-r8\" before \"1.3.5-r9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r9", + "1.3.5-r8" + ] + }, + "expected_output": [ + "1.3.5-r8", + "1.3.5-r9" + ] + }, + { + "description": "univers Alpine treats \"1.3.5-r8\" and \"1.3.5-r9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r8", + "1.3.5-r9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0\" before \"1.3.5-r9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r9", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "1.3.5-r9" + ] + }, + { + "description": "univers Alpine treats \"1.3.5-r9\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r9", + "1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "1.1" + ] + }, + { + "description": "univers Alpine treats \"1.0\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.11\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "0.9.11" + ] + }, + "expected_output": [ + "0.9.11", + "1.1" + ] + }, + { + "description": "univers Alpine treats \"1.1\" and \"0.9.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "0.9.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.11\" before \"0.9.12\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.12", + "0.9.11" + ] + }, + "expected_output": [ + "0.9.11", + "0.9.12" + ] + }, + { + "description": "univers Alpine treats \"0.9.11\" and \"0.9.12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.11", + "0.9.12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.13\" before \"0.9.14\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.14", + "0.9.13" + ] + }, + "expected_output": [ + "0.9.13", + "0.9.14" + ] + }, + { + "description": "univers Alpine treats \"0.9.13\" and \"0.9.14\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.13", + "0.9.14" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.14\" before \"0.9.15\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.15", + "0.9.14" + ] + }, + "expected_output": [ + "0.9.14", + "0.9.15" + ] + }, + { + "description": "univers Alpine treats \"0.9.14\" and \"0.9.15\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.14", + "0.9.15" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.15\" before \"0.9.16\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.16", + "0.9.15" + ] + }, + "expected_output": [ + "0.9.15", + "0.9.16" + ] + }, + { + "description": "univers Alpine treats \"0.9.15\" and \"0.9.16\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.15", + "0.9.16" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3-r2\" before \"0.9.16\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.16", + "0.3-r2" + ] + }, + "expected_output": [ + "0.3-r2", + "0.9.16" + ] + }, + { + "description": "univers Alpine treats \"0.9.16\" and \"0.3-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.16", + "0.3-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3-r2\" before \"6.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.3", + "0.3-r2" + ] + }, + "expected_output": [ + "0.3-r2", + "6.3" + ] + }, + { + "description": "univers Alpine treats \"0.3-r2\" and \"6.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3-r2", + "6.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"6.3\" before \"6.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.6", + "6.3" + ] + }, + "expected_output": [ + "6.3", + "6.6" + ] + }, + { + "description": "univers Alpine treats \"6.3\" and \"6.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.3", + "6.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"6.6\" before \"6.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.9", + "6.6" + ] + }, + "expected_output": [ + "6.6", + "6.9" + ] + }, + { + "description": "univers Alpine treats \"6.6\" and \"6.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.6", + "6.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.2-r3\" before \"6.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.9", + "0.7.2-r3" + ] + }, + "expected_output": [ + "0.7.2-r3", + "6.9" + ] + }, + { + "description": "univers Alpine treats \"6.9\" and \"0.7.2-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.9", + "0.7.2-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.7.2-r3\" before \"1.2.10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.10", + "0.7.2-r3" + ] + }, + "expected_output": [ + "0.7.2-r3", + "1.2.10" + ] + }, + { + "description": "univers Alpine treats \"0.7.2-r3\" and \"1.2.10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.7.2-r3", + "1.2.10" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.10\" before \"20040923-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20040923-r2", + "1.2.10" + ] + }, + "expected_output": [ + "1.2.10", + "20040923-r2" + ] + }, + { + "description": "univers Alpine treats \"1.2.10\" and \"20040923-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.10", + "20040923-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"20040401\" before \"20040923-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20040923-r2", + "20040401" + ] + }, + "expected_output": [ + "20040401", + "20040923-r2" + ] + }, + { + "description": "univers Alpine treats \"20040923-r2\" and \"20040401\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20040923-r2", + "20040401" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.0_rc3-r1\" before \"20040401\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20040401", + "2.0.0_rc3-r1" + ] + }, + "expected_output": [ + "2.0.0_rc3-r1", + "20040401" + ] + }, + { + "description": "univers Alpine treats \"20040401\" and \"2.0.0_rc3-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20040401", + "2.0.0_rc3-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.5\" before \"2.0.0_rc3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.0_rc3-r1", + "1.5" + ] + }, + "expected_output": [ + "1.5", + "2.0.0_rc3-r1" + ] + }, + { + "description": "univers Alpine treats \"2.0.0_rc3-r1\" and \"1.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.0_rc3-r1", + "1.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.5\" before \"4.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.4", + "1.5" + ] + }, + "expected_output": [ + "1.5", + "4.4" + ] + }, + { + "description": "univers Alpine treats \"1.5\" and \"4.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.5", + "4.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"4.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.4", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "4.4" + ] + }, + { + "description": "univers Alpine treats \"4.4\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.4", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"2.2.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2.0", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "2.2.0" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"2.2.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "2.2.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0-r2\" before \"2.2.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2.0", + "1.1.0-r2" + ] + }, + "expected_output": [ + "1.1.0-r2", + "2.2.0" + ] + }, + { + "description": "univers Alpine treats \"2.2.0\" and \"1.1.0-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.2.0", + "1.1.0-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3\" before \"1.1.0-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0-r2", + "0.3" + ] + }, + "expected_output": [ + "0.3", + "1.1.0-r2" + ] + }, + { + "description": "univers Alpine treats \"1.1.0-r2\" and \"0.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0-r2", + "0.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3\" before \"20020207-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20020207-r2", + "0.3" + ] + }, + "expected_output": [ + "0.3", + "20020207-r2" + ] + }, + { + "description": "univers Alpine treats \"0.3\" and \"20020207-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3", + "20020207-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.31-r2\" before \"20020207-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20020207-r2", + "1.31-r2" + ] + }, + "expected_output": [ + "1.31-r2", + "20020207-r2" + ] + }, + { + "description": "univers Alpine treats \"20020207-r2\" and \"1.31-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20020207-r2", + "1.31-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.31-r2\" before \"3.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.7", + "1.31-r2" + ] + }, + "expected_output": [ + "1.31-r2", + "3.7" + ] + }, + { + "description": "univers Alpine treats \"1.31-r2\" and \"3.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.31-r2", + "3.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.1\" before \"3.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.7", + "2.0.1" + ] + }, + "expected_output": [ + "2.0.1", + "3.7" + ] + }, + { + "description": "univers Alpine treats \"3.7\" and \"2.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.7", + "2.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.1\" before \"2.0.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.2", + "2.0.1" + ] + }, + "expected_output": [ + "2.0.1", + "2.0.2" + ] + }, + { + "description": "univers Alpine treats \"2.0.1\" and \"2.0.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.1", + "2.0.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.99.163\" before \"2.0.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.2", + "0.99.163" + ] + }, + "expected_output": [ + "0.99.163", + "2.0.2" + ] + }, + { + "description": "univers Alpine treats \"2.0.2\" and \"0.99.163\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.2", + "0.99.163" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.99.163\" before \"2.6.15.20060110\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.15.20060110", + "0.99.163" + ] + }, + "expected_output": [ + "0.99.163", + "2.6.15.20060110" + ] + }, + { + "description": "univers Alpine treats \"0.99.163\" and \"2.6.15.20060110\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.99.163", + "2.6.15.20060110" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.15.20060110\" before \"2.6.16.20060323\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.16.20060323", + "2.6.15.20060110" + ] + }, + "expected_output": [ + "2.6.15.20060110", + "2.6.16.20060323" + ] + }, + { + "description": "univers Alpine treats \"2.6.15.20060110\" and \"2.6.16.20060323\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.15.20060110", + "2.6.16.20060323" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.16.20060323\" before \"2.6.19.20061214\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.19.20061214", + "2.6.16.20060323" + ] + }, + "expected_output": [ + "2.6.16.20060323", + "2.6.19.20061214" + ] + }, + { + "description": "univers Alpine treats \"2.6.16.20060323\" and \"2.6.19.20061214\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.16.20060323", + "2.6.19.20061214" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.2-r1\" before \"2.6.19.20061214\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.19.20061214", + "0.6.2-r1" + ] + }, + "expected_output": [ + "0.6.2-r1", + "2.6.19.20061214" + ] + }, + { + "description": "univers Alpine treats \"2.6.19.20061214\" and \"0.6.2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.19.20061214", + "0.6.2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.2-r1\" before \"0.6.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.6.3", + "0.6.2-r1" + ] + }, + "expected_output": [ + "0.6.2-r1", + "0.6.3" + ] + }, + { + "description": "univers Alpine treats \"0.6.2-r1\" and \"0.6.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.6.2-r1", + "0.6.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.3\" before \"0.6.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.6.5", + "0.6.3" + ] + }, + "expected_output": [ + "0.6.3", + "0.6.5" + ] + }, + { + "description": "univers Alpine treats \"0.6.3\" and \"0.6.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.6.3", + "0.6.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.5\" before \"1.3.5-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r1", + "0.6.5" + ] + }, + "expected_output": [ + "0.6.5", + "1.3.5-r1" + ] + }, + { + "description": "univers Alpine treats \"0.6.5\" and \"1.3.5-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.6.5", + "1.3.5-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.5-r1\" before \"1.3.5-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r4", + "1.3.5-r1" + ] + }, + "expected_output": [ + "1.3.5-r1", + "1.3.5-r4" + ] + }, + { + "description": "univers Alpine treats \"1.3.5-r1\" and \"1.3.5-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r1", + "1.3.5-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.5-r4\" before \"3.0.0-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.0.0-r2", + "1.3.5-r4" + ] + }, + "expected_output": [ + "1.3.5-r4", + "3.0.0-r2" + ] + }, + { + "description": "univers Alpine treats \"1.3.5-r4\" and \"3.0.0-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.5-r4", + "3.0.0-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.24\" before \"20060512\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20060512", + "1.24" + ] + }, + "expected_output": [ + "1.24", + "20060512" + ] + }, + { + "description": "univers Alpine treats \"20060512\" and \"1.24\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20060512", + "1.24" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.16-r1\" before \"1.24\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.24", + "0.9.16-r1" + ] + }, + "expected_output": [ + "0.9.16-r1", + "1.24" + ] + }, + { + "description": "univers Alpine treats \"1.24\" and \"0.9.16-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.24", + "0.9.16-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.16-r1\" before \"3.9_pre20060124\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.9_pre20060124", + "0.9.16-r1" + ] + }, + "expected_output": [ + "0.9.16-r1", + "3.9_pre20060124" + ] + }, + { + "description": "univers Alpine treats \"0.9.16-r1\" and \"3.9_pre20060124\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.16-r1", + "3.9_pre20060124" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.01\" before \"3.9_pre20060124\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.9_pre20060124", + "0.01" + ] + }, + "expected_output": [ + "0.01", + "3.9_pre20060124" + ] + }, + { + "description": "univers Alpine treats \"3.9_pre20060124\" and \"0.01\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.9_pre20060124", + "0.01" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.01\" before \"0.06\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.06", + "0.01" + ] + }, + "expected_output": [ + "0.01", + "0.06" + ] + }, + { + "description": "univers Alpine treats \"0.01\" and \"0.06\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.01", + "0.06" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.06\" before \"1.1.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.7", + "0.06" + ] + }, + "expected_output": [ + "0.06", + "1.1.7" + ] + }, + { + "description": "univers Alpine treats \"0.06\" and \"1.1.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.06", + "1.1.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.7\" before \"6b-r7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6b-r7", + "1.1.7" + ] + }, + "expected_output": [ + "1.1.7", + "6b-r7" + ] + }, + { + "description": "univers Alpine treats \"1.1.7\" and \"6b-r7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.7", + "6b-r7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.12-r7\" before \"6b-r7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6b-r7", + "1.12-r7" + ] + }, + "expected_output": [ + "1.12-r7", + "6b-r7" + ] + }, + { + "description": "univers Alpine treats \"6b-r7\" and \"1.12-r7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6b-r7", + "1.12-r7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.12-r7\" before \"1.12-r8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.12-r8", + "1.12-r7" + ] + }, + "expected_output": [ + "1.12-r7", + "1.12-r8" + ] + }, + { + "description": "univers Alpine treats \"1.12-r7\" and \"1.12-r8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.12-r7", + "1.12-r8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.12\" before \"1.12-r8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.12-r8", + "1.1.12" + ] + }, + "expected_output": [ + "1.1.12", + "1.12-r8" + ] + }, + { + "description": "univers Alpine treats \"1.12-r8\" and \"1.1.12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.12-r8", + "1.1.12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.12\" before \"1.1.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.13", + "1.1.12" + ] + }, + "expected_output": [ + "1.1.12", + "1.1.13" + ] + }, + { + "description": "univers Alpine treats \"1.1.12\" and \"1.1.13\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.12", + "1.1.13" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3\" before \"1.1.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.13", + "0.3" + ] + }, + "expected_output": [ + "0.3", + "1.1.13" + ] + }, + { + "description": "univers Alpine treats \"1.1.13\" and \"0.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.13", + "0.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3\" before \"0.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.5", + "0.3" + ] + }, + "expected_output": [ + "0.3", + "0.5" + ] + }, + { + "description": "univers Alpine treats \"0.3\" and \"0.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3", + "0.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5\" before \"3.96.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.96.1", + "0.5" + ] + }, + "expected_output": [ + "0.5", + "3.96.1" + ] + }, + { + "description": "univers Alpine treats \"0.5\" and \"3.96.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.5", + "3.96.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.96.1\" before \"3.97\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.97", + "3.96.1" + ] + }, + "expected_output": [ + "3.96.1", + "3.97" + ] + }, + { + "description": "univers Alpine treats \"3.96.1\" and \"3.97\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.96.1", + "3.97" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.10.0-r1\" before \"3.97\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.97", + "0.10.0-r1" + ] + }, + "expected_output": [ + "0.10.0-r1", + "3.97" + ] + }, + { + "description": "univers Alpine treats \"3.97\" and \"0.10.0-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.97", + "0.10.0-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.10.0\" before \"0.10.0-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.10.0-r1", + "0.10.0" + ] + }, + "expected_output": [ + "0.10.0", + "0.10.0-r1" + ] + }, + { + "description": "univers Alpine treats \"0.10.0-r1\" and \"0.10.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.10.0-r1", + "0.10.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.10.0\" before \"0.10.1_rc1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.10.1_rc1", + "0.10.0" + ] + }, + "expected_output": [ + "0.10.0", + "0.10.1_rc1" + ] + }, + { + "description": "univers Alpine treats \"0.10.0\" and \"0.10.1_rc1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.10.0", + "0.10.1_rc1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.11\" before \"0.10.1_rc1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.10.1_rc1", + "0.9.11" + ] + }, + "expected_output": [ + "0.9.11", + "0.10.1_rc1" + ] + }, + { + "description": "univers Alpine treats \"0.10.1_rc1\" and \"0.9.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.10.1_rc1", + "0.9.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.11\" before \"394\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "394", + "0.9.11" + ] + }, + "expected_output": [ + "0.9.11", + "394" + ] + }, + { + "description": "univers Alpine treats \"0.9.11\" and \"394\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.11", + "394" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.31\" before \"394\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "394", + "2.31" + ] + }, + "expected_output": [ + "2.31", + "394" + ] + }, + { + "description": "univers Alpine treats \"394\" and \"2.31\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "394", + "2.31" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"2.31\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.31", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "2.31" + ] + }, + { + "description": "univers Alpine treats \"2.31\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.31", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.0.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.3", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.0.3" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"1.0.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "1.0.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2\" before \"1.0.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.3", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "1.0.3" + ] + }, + { + "description": "univers Alpine treats \"1.0.3\" and \"1.0.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.3", + "1.0.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.0.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.0.2" + ] + }, + { + "description": "univers Alpine treats \"1.0.2\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.2.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.2.2" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"1.2.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "1.2.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.2\" before \"2.1.10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.10", + "1.2.2" + ] + }, + "expected_output": [ + "1.2.2", + "2.1.10" + ] + }, + { + "description": "univers Alpine treats \"1.2.2\" and \"2.1.10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2", + "2.1.10" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"2.1.10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.10", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "2.1.10" + ] + }, + { + "description": "univers Alpine treats \"2.1.10\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1.10", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2\" before \"3.5.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.5.5", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "3.5.5" + ] + }, + { + "description": "univers Alpine treats \"1.0.2\" and \"3.5.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "3.5.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.1\" before \"3.5.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.5.5", + "1.1.1" + ] + }, + "expected_output": [ + "1.1.1", + "3.5.5" + ] + }, + { + "description": "univers Alpine treats \"3.5.5\" and \"1.1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.5.5", + "1.1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.1\" before \"1.1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1", + "0.9.1" + ] + }, + "expected_output": [ + "0.9.1", + "1.1.1" + ] + }, + { + "description": "univers Alpine treats \"1.1.1\" and \"0.9.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1", + "0.9.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.1\" before \"1.0.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "0.9.1" + ] + }, + "expected_output": [ + "0.9.1", + "1.0.2" + ] + }, + { + "description": "univers Alpine treats \"0.9.1\" and \"1.0.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.1", + "1.0.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.0.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.5", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.0.5" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"1.0.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "1.0.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8.5\" before \"1.0.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.5", + "0.8.5" + ] + }, + "expected_output": [ + "0.8.5", + "1.0.5" + ] + }, + { + "description": "univers Alpine treats \"1.0.5\" and \"0.8.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.5", + "0.8.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8.5\" before \"0.8.6-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.8.6-r3", + "0.8.5" + ] + }, + "expected_output": [ + "0.8.5", + "0.8.6-r3" + ] + }, + { + "description": "univers Alpine treats \"0.8.5\" and \"0.8.6-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.8.5", + "0.8.6-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8.6-r3\" before \"2.3.17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.3.17", + "0.8.6-r3" + ] + }, + "expected_output": [ + "0.8.6-r3", + "2.3.17" + ] + }, + { + "description": "univers Alpine treats \"0.8.6-r3\" and \"2.3.17\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.8.6-r3", + "2.3.17" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.10-r5\" before \"2.3.17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.3.17", + "1.10-r5" + ] + }, + "expected_output": [ + "1.10-r5", + "2.3.17" + ] + }, + { + "description": "univers Alpine treats \"2.3.17\" and \"1.10-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.3.17", + "1.10-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.10-r5\" before \"1.10-r9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.10-r9", + "1.10-r5" + ] + }, + "expected_output": [ + "1.10-r5", + "1.10-r9" + ] + }, + { + "description": "univers Alpine treats \"1.10-r5\" and \"1.10-r9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.10-r5", + "1.10-r9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.10-r9\" before \"2.0.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.2", + "1.10-r9" + ] + }, + "expected_output": [ + "1.10-r9", + "2.0.2" + ] + }, + { + "description": "univers Alpine treats \"1.10-r9\" and \"2.0.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.10-r9", + "2.0.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1a\" before \"2.0.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.2", + "1.1a" + ] + }, + "expected_output": [ + "1.1a", + "2.0.2" + ] + }, + { + "description": "univers Alpine treats \"2.0.2\" and \"1.1a\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.2", + "1.1a" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1a\" before \"1.3a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3a", + "1.1a" + ] + }, + "expected_output": [ + "1.1a", + "1.3a" + ] + }, + { + "description": "univers Alpine treats \"1.1a\" and \"1.3a\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1a", + "1.3a" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2\" before \"1.3a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3a", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "1.3a" + ] + }, + { + "description": "univers Alpine treats \"1.3a\" and \"1.0.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3a", + "1.0.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2\" before \"1.2.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2-r1", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "1.2.2-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0.2\" and \"1.2.2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "1.2.2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0-r1\" before \"1.2.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2-r1", + "1.0-r1" + ] + }, + "expected_output": [ + "1.0-r1", + "1.2.2-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.2-r1\" and \"1.0-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2-r1", + "1.0-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.15.1b\" before \"1.0-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0-r1", + "0.15.1b" + ] + }, + "expected_output": [ + "0.15.1b", + "1.0-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0-r1\" and \"0.15.1b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0-r1", + "0.15.1b" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.15.1b\" before \"1.0.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "0.15.1b" + ] + }, + "expected_output": [ + "0.15.1b", + "1.0.1" + ] + }, + { + "description": "univers Alpine treats \"0.15.1b\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.15.1b", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.06-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.06-r1", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.06-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"1.06-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "1.06-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.06-r1\" before \"1.06-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.06-r2", + "1.06-r1" + ] + }, + "expected_output": [ + "1.06-r1", + "1.06-r2" + ] + }, + { + "description": "univers Alpine treats \"1.06-r1\" and \"1.06-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.06-r1", + "1.06-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.15.1b-r2\" before \"1.06-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.06-r2", + "0.15.1b-r2" + ] + }, + "expected_output": [ + "0.15.1b-r2", + "1.06-r2" + ] + }, + { + "description": "univers Alpine treats \"1.06-r2\" and \"0.15.1b-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.06-r2", + "0.15.1b-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.15.1b\" before \"0.15.1b-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.15.1b-r2", + "0.15.1b" + ] + }, + "expected_output": [ + "0.15.1b", + "0.15.1b-r2" + ] + }, + { + "description": "univers Alpine treats \"0.15.1b-r2\" and \"0.15.1b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.15.1b-r2", + "0.15.1b" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.15.1b\" before \"2.5.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.5.7", + "0.15.1b" + ] + }, + "expected_output": [ + "0.15.1b", + "2.5.7" + ] + }, + { + "description": "univers Alpine treats \"0.15.1b\" and \"2.5.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.15.1b", + "2.5.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.2.1-r1\" before \"2.5.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.5.7", + "1.1.2.1-r1" + ] + }, + "expected_output": [ + "1.1.2.1-r1", + "2.5.7" + ] + }, + { + "description": "univers Alpine treats \"2.5.7\" and \"1.1.2.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.5.7", + "1.1.2.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.0.31\" before \"1.1.2.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2.1-r1", + "0.0.31" + ] + }, + "expected_output": [ + "0.0.31", + "1.1.2.1-r1" + ] + }, + { + "description": "univers Alpine treats \"1.1.2.1-r1\" and \"0.0.31\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2.1-r1", + "0.0.31" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.0.31\" before \"0.0.50\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.0.50", + "0.0.31" + ] + }, + "expected_output": [ + "0.0.31", + "0.0.50" + ] + }, + { + "description": "univers Alpine treats \"0.0.31\" and \"0.0.50\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.0.31", + "0.0.50" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.0.16\" before \"0.0.50\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.0.50", + "0.0.16" + ] + }, + "expected_output": [ + "0.0.16", + "0.0.50" + ] + }, + { + "description": "univers Alpine treats \"0.0.50\" and \"0.0.16\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.0.50", + "0.0.16" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.0.16\" before \"0.0.25\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.0.25", + "0.0.16" + ] + }, + "expected_output": [ + "0.0.16", + "0.0.25" + ] + }, + { + "description": "univers Alpine treats \"0.0.16\" and \"0.0.25\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.0.16", + "0.0.25" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.0.25\" before \"0.17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.17", + "0.0.25" + ] + }, + "expected_output": [ + "0.0.25", + "0.17" + ] + }, + { + "description": "univers Alpine treats \"0.0.25\" and \"0.17\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.0.25", + "0.17" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5.0\" before \"0.17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.17", + "0.5.0" + ] + }, + "expected_output": [ + "0.5.0", + "0.17" + ] + }, + { + "description": "univers Alpine treats \"0.17\" and \"0.5.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.17", + "0.5.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5.0\" before \"1.1.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2", + "0.5.0" + ] + }, + "expected_output": [ + "0.5.0", + "1.1.2" + ] + }, + { + "description": "univers Alpine treats \"0.5.0\" and \"1.1.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.5.0", + "1.1.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.2\" before \"1.1.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.3", + "1.1.2" + ] + }, + "expected_output": [ + "1.1.2", + "1.1.3" + ] + }, + { + "description": "univers Alpine treats \"1.1.2\" and \"1.1.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2", + "1.1.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.3\" before \"1.1.20\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.20", + "1.1.3" + ] + }, + "expected_output": [ + "1.1.3", + "1.1.20" + ] + }, + { + "description": "univers Alpine treats \"1.1.3\" and \"1.1.20\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.3", + "1.1.20" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.4\" before \"1.1.20\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.20", + "0.9.4" + ] + }, + "expected_output": [ + "0.9.4", + "1.1.20" + ] + }, + { + "description": "univers Alpine treats \"1.1.20\" and \"0.9.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.20", + "0.9.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.4\" before \"0.9.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.5", + "0.9.4" + ] + }, + "expected_output": [ + "0.9.4", + "0.9.5" + ] + }, + { + "description": "univers Alpine treats \"0.9.4\" and \"0.9.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.4", + "0.9.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.5\" before \"6.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.3", + "0.9.5" + ] + }, + "expected_output": [ + "0.9.5", + "6.3" + ] + }, + { + "description": "univers Alpine treats \"0.9.5\" and \"6.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.5", + "6.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.12-r1\" before \"6.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.6", + "1.2.12-r1" + ] + }, + "expected_output": [ + "1.2.12-r1", + "6.6" + ] + }, + { + "description": "univers Alpine treats \"6.6\" and \"1.2.12-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.6", + "1.2.12-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.12-r1\" before \"1.2.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.13", + "1.2.12-r1" + ] + }, + "expected_output": [ + "1.2.12-r1", + "1.2.13" + ] + }, + { + "description": "univers Alpine treats \"1.2.12-r1\" and \"1.2.13\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12-r1", + "1.2.13" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.13\" before \"1.2.14\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.14", + "1.2.13" + ] + }, + "expected_output": [ + "1.2.13", + "1.2.14" + ] + }, + { + "description": "univers Alpine treats \"1.2.13\" and \"1.2.14\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.13", + "1.2.14" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.14\" before \"1.2.15\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.15", + "1.2.14" + ] + }, + "expected_output": [ + "1.2.14", + "1.2.15" + ] + }, + { + "description": "univers Alpine treats \"1.2.14\" and \"1.2.15\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.14", + "1.2.15" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.15\" before \"8.0.12\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.0.12", + "1.2.15" + ] + }, + "expected_output": [ + "1.2.15", + "8.0.12" + ] + }, + { + "description": "univers Alpine treats \"1.2.15\" and \"8.0.12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.15", + "8.0.12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"8.0.9\" before \"8.0.12\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.0.12", + "8.0.9" + ] + }, + "expected_output": [ + "8.0.9", + "8.0.12" + ] + }, + { + "description": "univers Alpine treats \"8.0.12\" and \"8.0.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "8.0.12", + "8.0.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.3-r1\" before \"8.0.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.0.9", + "1.2.3-r1" + ] + }, + "expected_output": [ + "1.2.3-r1", + "8.0.9" + ] + }, + { + "description": "univers Alpine treats \"8.0.9\" and \"1.2.3-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "8.0.9", + "1.2.3-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.3-r1\" before \"1.2.4-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.4-r1", + "1.2.3-r1" + ] + }, + "expected_output": [ + "1.2.3-r1", + "1.2.4-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.3-r1\" and \"1.2.4-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.3-r1", + "1.2.4-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1\" before \"1.2.4-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.4-r1", + "0.1" + ] + }, + "expected_output": [ + "0.1", + "1.2.4-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.4-r1\" and \"0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.4-r1", + "0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1\" before \"0.3.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.3.5", + "0.1" + ] + }, + "expected_output": [ + "0.1", + "0.3.5" + ] + }, + { + "description": "univers Alpine treats \"0.1\" and \"0.3.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1", + "0.3.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.5\" before \"1.5.22\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.5.22", + "0.3.5" + ] + }, + "expected_output": [ + "0.3.5", + "1.5.22" + ] + }, + { + "description": "univers Alpine treats \"0.3.5\" and \"1.5.22\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3.5", + "1.5.22" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.11\" before \"1.5.22\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.5.22", + "0.1.11" + ] + }, + "expected_output": [ + "0.1.11", + "1.5.22" + ] + }, + { + "description": "univers Alpine treats \"1.5.22\" and \"0.1.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.5.22", + "0.1.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.11\" before \"0.1.12\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.1.12", + "0.1.11" + ] + }, + "expected_output": [ + "0.1.11", + "0.1.12" + ] + }, + { + "description": "univers Alpine treats \"0.1.11\" and \"0.1.12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.11", + "0.1.12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.12\" before \"1.1.4.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.4.1", + "0.1.12" + ] + }, + "expected_output": [ + "0.1.12", + "1.1.4.1" + ] + }, + { + "description": "univers Alpine treats \"0.1.12\" and \"1.1.4.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.12", + "1.1.4.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"1.1.4.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.4.1", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "1.1.4.1" + ] + }, + { + "description": "univers Alpine treats \"1.1.4.1\" and \"1.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.4.1", + "1.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"1.1.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "1.1.2" + ] + }, + { + "description": "univers Alpine treats \"1.1.0\" and \"1.1.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "1.1.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.3\" before \"1.1.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2", + "1.0.3" + ] + }, + "expected_output": [ + "1.0.3", + "1.1.2" + ] + }, + { + "description": "univers Alpine treats \"1.1.2\" and \"1.0.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2", + "1.0.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2\" before \"2.6.26\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.26", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "2.6.26" + ] + }, + { + "description": "univers Alpine treats \"1.0.2\" and \"2.6.26\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "2.6.26" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.26\" before \"2.6.27\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.27", + "2.6.26" + ] + }, + "expected_output": [ + "2.6.26", + "2.6.27" + ] + }, + { + "description": "univers Alpine treats \"2.6.26\" and \"2.6.27\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.26", + "2.6.27" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.17\" before \"2.6.27\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.27", + "1.1.17" + ] + }, + "expected_output": [ + "1.1.17", + "2.6.27" + ] + }, + { + "description": "univers Alpine treats \"2.6.27\" and \"1.1.17\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.27", + "1.1.17" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.17\" before \"1.4.11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4.11", + "1.1.17" + ] + }, + "expected_output": [ + "1.1.17", + "1.4.11" + ] + }, + { + "description": "univers Alpine treats \"1.1.17\" and \"1.4.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.17", + "1.4.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4.11\" before \"22.7-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "22.7-r1", + "1.4.11" + ] + }, + "expected_output": [ + "1.4.11", + "22.7-r1" + ] + }, + { + "description": "univers Alpine treats \"1.4.11\" and \"22.7-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4.11", + "22.7-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"22.7-r1\" before \"22.7.3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "22.7.3-r1", + "22.7-r1" + ] + }, + "expected_output": [ + "22.7-r1", + "22.7.3-r1" + ] + }, + { + "description": "univers Alpine treats \"22.7-r1\" and \"22.7.3-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "22.7-r1", + "22.7.3-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"22.7\" before \"22.7.3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "22.7.3-r1", + "22.7" + ] + }, + "expected_output": [ + "22.7", + "22.7.3-r1" + ] + }, + { + "description": "univers Alpine treats \"22.7.3-r1\" and \"22.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "22.7.3-r1", + "22.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.1_pre20\" before \"22.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "22.7", + "2.1_pre20" + ] + }, + "expected_output": [ + "2.1_pre20", + "22.7" + ] + }, + { + "description": "univers Alpine treats \"22.7\" and \"2.1_pre20\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "22.7", + "2.1_pre20" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.1_pre20\" before \"2.1_pre26\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1_pre26", + "2.1_pre20" + ] + }, + "expected_output": [ + "2.1_pre20", + "2.1_pre26" + ] + }, + { + "description": "univers Alpine treats \"2.1_pre20\" and \"2.1_pre26\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1_pre20", + "2.1_pre26" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.3-r2\" before \"2.1_pre26\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1_pre26", + "0.2.3-r2" + ] + }, + "expected_output": [ + "0.2.3-r2", + "2.1_pre26" + ] + }, + { + "description": "univers Alpine treats \"2.1_pre26\" and \"0.2.3-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1_pre26", + "0.2.3-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.2\" before \"0.2.3-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.2.3-r2", + "0.2.2" + ] + }, + "expected_output": [ + "0.2.2", + "0.2.3-r2" + ] + }, + { + "description": "univers Alpine treats \"0.2.3-r2\" and \"0.2.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.3-r2", + "0.2.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.2\" before \"2.10.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.10.0", + "0.2.2" + ] + }, + "expected_output": [ + "0.2.2", + "2.10.0" + ] + }, + { + "description": "univers Alpine treats \"0.2.2\" and \"2.10.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.2", + "2.10.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.10.0\" before \"2.10.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.10.1", + "2.10.0" + ] + }, + "expected_output": [ + "2.10.0", + "2.10.1" + ] + }, + { + "description": "univers Alpine treats \"2.10.0\" and \"2.10.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.10.0", + "2.10.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.17\" before \"4.77\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.77", + "0.17" + ] + }, + "expected_output": [ + "0.17", + "4.77" + ] + }, + { + "description": "univers Alpine treats \"4.77\" and \"0.17\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.77", + "0.17" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.17\" before \"5.1.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.1.1-r1", + "0.17" + ] + }, + "expected_output": [ + "0.17", + "5.1.1-r1" + ] + }, + { + "description": "univers Alpine treats \"0.17\" and \"5.1.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.17", + "5.1.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.1.1-r1\" before \"5.1.1-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.1.1-r2", + "5.1.1-r1" + ] + }, + "expected_output": [ + "5.1.1-r1", + "5.1.1-r2" + ] + }, + { + "description": "univers Alpine treats \"5.1.1-r1\" and \"5.1.1-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.1.1-r1", + "5.1.1-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.1.1\" before \"5.1.1-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.1.1-r2", + "5.1.1" + ] + }, + "expected_output": [ + "5.1.1", + "5.1.1-r2" + ] + }, + { + "description": "univers Alpine treats \"5.1.1-r2\" and \"5.1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.1.1-r2", + "5.1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2\" before \"5.1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.1.1", + "1.2" + ] + }, + "expected_output": [ + "1.2", + "5.1.1" + ] + }, + { + "description": "univers Alpine treats \"5.1.1\" and \"1.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.1.1", + "1.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2\" before \"5.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.1", + "1.2" + ] + }, + "expected_output": [ + "1.2", + "5.1" + ] + }, + { + "description": "univers Alpine treats \"1.2\" and \"5.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2", + "5.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.02.06\" before \"5.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.1", + "2.02.06" + ] + }, + "expected_output": [ + "2.02.06", + "5.1" + ] + }, + { + "description": "univers Alpine treats \"5.1\" and \"2.02.06\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.1", + "2.02.06" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.02.06\" before \"2.02.10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.02.10", + "2.02.06" + ] + }, + "expected_output": [ + "2.02.06", + "2.02.10" + ] + }, + { + "description": "univers Alpine treats \"2.02.06\" and \"2.02.10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.02.06", + "2.02.10" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.02.10\" before \"2.8.5-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.5-r3", + "2.02.10" + ] + }, + "expected_output": [ + "2.02.10", + "2.8.5-r3" + ] + }, + { + "description": "univers Alpine treats \"2.02.10\" and \"2.8.5-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.02.10", + "2.8.5-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.8.5-r3\" before \"2.8.6-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.6-r1", + "2.8.5-r3" + ] + }, + "expected_output": [ + "2.8.5-r3", + "2.8.6-r1" + ] + }, + { + "description": "univers Alpine treats \"2.8.5-r3\" and \"2.8.6-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8.5-r3", + "2.8.6-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.8.6-r1\" before \"2.8.6-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.6-r2", + "2.8.6-r1" + ] + }, + "expected_output": [ + "2.8.6-r1", + "2.8.6-r2" + ] + }, + { + "description": "univers Alpine treats \"2.8.6-r1\" and \"2.8.6-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8.6-r1", + "2.8.6-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.02-r1\" before \"2.8.6-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.6-r2", + "2.02-r1" + ] + }, + "expected_output": [ + "2.02-r1", + "2.8.6-r2" + ] + }, + { + "description": "univers Alpine treats \"2.8.6-r2\" and \"2.02-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8.6-r2", + "2.02-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.5.0-r1\" before \"2.02-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.02-r1", + "1.5.0-r1" + ] + }, + "expected_output": [ + "1.5.0-r1", + "2.02-r1" + ] + }, + { + "description": "univers Alpine treats \"2.02-r1\" and \"1.5.0-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.02-r1", + "1.5.0-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.5.0\" before \"1.5.0-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.5.0-r1", + "1.5.0" + ] + }, + "expected_output": [ + "1.5.0", + "1.5.0-r1" + ] + }, + { + "description": "univers Alpine treats \"1.5.0-r1\" and \"1.5.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.5.0-r1", + "1.5.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.2\" before \"1.5.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.5.0", + "0.9.2" + ] + }, + "expected_output": [ + "0.9.2", + "1.5.0" + ] + }, + { + "description": "univers Alpine treats \"1.5.0\" and \"0.9.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.5.0", + "0.9.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.2\" before \"8.1.2.20040524-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.1.2.20040524-r1", + "0.9.2" + ] + }, + "expected_output": [ + "0.9.2", + "8.1.2.20040524-r1" + ] + }, + { + "description": "univers Alpine treats \"0.9.2\" and \"8.1.2.20040524-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.2", + "8.1.2.20040524-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"8.1.2.20040524-r1\" before \"8.1.2.20050715-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.1.2.20050715-r1", + "8.1.2.20040524-r1" + ] + }, + "expected_output": [ + "8.1.2.20040524-r1", + "8.1.2.20050715-r1" + ] + }, + { + "description": "univers Alpine treats \"8.1.2.20040524-r1\" and \"8.1.2.20050715-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "8.1.2.20040524-r1", + "8.1.2.20050715-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"8.1.2.20050715-r1\" before \"20030215\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20030215", + "8.1.2.20050715-r1" + ] + }, + "expected_output": [ + "8.1.2.20050715-r1", + "20030215" + ] + }, + { + "description": "univers Alpine treats \"8.1.2.20050715-r1\" and \"20030215\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "8.1.2.20050715-r1", + "20030215" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.80-r4\" before \"20030215\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20030215", + "3.80-r4" + ] + }, + "expected_output": [ + "3.80-r4", + "20030215" + ] + }, + { + "description": "univers Alpine treats \"20030215\" and \"3.80-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20030215", + "3.80-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.80-r4\" before \"3.81\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.81", + "3.80-r4" + ] + }, + "expected_output": [ + "3.80-r4", + "3.81" + ] + }, + { + "description": "univers Alpine treats \"3.80-r4\" and \"3.81\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.80-r4", + "3.81" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.6d\" before \"3.81\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.81", + "1.6d" + ] + }, + "expected_output": [ + "1.6d", + "3.81" + ] + }, + { + "description": "univers Alpine treats \"3.81\" and \"1.6d\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.81", + "1.6d" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.07.8\" before \"1.6d\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.6d", + "1.2.07.8" + ] + }, + "expected_output": [ + "1.2.07.8", + "1.6d" + ] + }, + { + "description": "univers Alpine treats \"1.6d\" and \"1.2.07.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.6d", + "1.2.07.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.07.8\" before \"1.2.12.04\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12.04", + "1.2.07.8" + ] + }, + "expected_output": [ + "1.2.07.8", + "1.2.12.04" + ] + }, + { + "description": "univers Alpine treats \"1.2.07.8\" and \"1.2.12.04\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.07.8", + "1.2.12.04" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.12.04\" before \"1.2.12.05\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12.05", + "1.2.12.04" + ] + }, + "expected_output": [ + "1.2.12.04", + "1.2.12.05" + ] + }, + { + "description": "univers Alpine treats \"1.2.12.04\" and \"1.2.12.05\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12.04", + "1.2.12.05" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.12.05\" before \"1.3.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.3", + "1.2.12.05" + ] + }, + "expected_output": [ + "1.2.12.05", + "1.3.3" + ] + }, + { + "description": "univers Alpine treats \"1.2.12.05\" and \"1.3.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12.05", + "1.3.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.3\" before \"2.6.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.4", + "1.3.3" + ] + }, + "expected_output": [ + "1.3.3", + "2.6.4" + ] + }, + { + "description": "univers Alpine treats \"1.3.3\" and \"2.6.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.3", + "2.6.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.5.2\" before \"2.6.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.4", + "2.5.2" + ] + }, + "expected_output": [ + "2.5.2", + "2.6.4" + ] + }, + { + "description": "univers Alpine treats \"2.6.4\" and \"2.5.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.4", + "2.5.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.5.2\" before \"2.6.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1", + "2.5.2" + ] + }, + "expected_output": [ + "2.5.2", + "2.6.1" + ] + }, + { + "description": "univers Alpine treats \"2.5.2\" and \"2.6.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.5.2", + "2.6.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6\" before \"2.6.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1", + "2.6" + ] + }, + "expected_output": [ + "2.6", + "2.6.1" + ] + }, + { + "description": "univers Alpine treats \"2.6.1\" and \"2.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1", + "2.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6\" before \"6.5.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.5.1-r1", + "2.6" + ] + }, + "expected_output": [ + "2.6", + "6.5.1-r1" + ] + }, + { + "description": "univers Alpine treats \"2.6\" and \"6.5.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6", + "6.5.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.35-r1\" before \"6.5.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.5.1-r1", + "1.1.35-r1" + ] + }, + "expected_output": [ + "1.1.35-r1", + "6.5.1-r1" + ] + }, + { + "description": "univers Alpine treats \"6.5.1-r1\" and \"1.1.35-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.5.1-r1", + "1.1.35-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.35-r1\" before \"1.1.35-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.35-r2", + "1.1.35-r1" + ] + }, + "expected_output": [ + "1.1.35-r1", + "1.1.35-r2" + ] + }, + { + "description": "univers Alpine treats \"1.1.35-r1\" and \"1.1.35-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.35-r1", + "1.1.35-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.2\" before \"1.1.35-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.35-r2", + "0.9.2" + ] + }, + "expected_output": [ + "0.9.2", + "1.1.35-r2" + ] + }, + { + "description": "univers Alpine treats \"1.1.35-r2\" and \"0.9.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.35-r2", + "0.9.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.2\" before \"1.07-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.07-r1", + "0.9.2" + ] + }, + "expected_output": [ + "0.9.2", + "1.07-r1" + ] + }, + { + "description": "univers Alpine treats \"0.9.2\" and \"1.07-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.2", + "1.07-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.07-r1\" before \"1.07.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.07.5", + "1.07-r1" + ] + }, + "expected_output": [ + "1.07-r1", + "1.07.5" + ] + }, + { + "description": "univers Alpine treats \"1.07-r1\" and \"1.07.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.07-r1", + "1.07.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.07\" before \"1.07.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.07.5", + "1.07" + ] + }, + "expected_output": [ + "1.07", + "1.07.5" + ] + }, + { + "description": "univers Alpine treats \"1.07.5\" and \"1.07\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.07.5", + "1.07" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.07\" before \"1.19\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.19", + "1.07" + ] + }, + "expected_output": [ + "1.07", + "1.19" + ] + }, + { + "description": "univers Alpine treats \"1.07\" and \"1.19\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.07", + "1.19" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.19\" before \"2.1-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1-r2", + "1.19" + ] + }, + "expected_output": [ + "1.19", + "2.1-r2" + ] + }, + { + "description": "univers Alpine treats \"1.19\" and \"2.1-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.19", + "2.1-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.1-r2\" before \"2.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2", + "2.1-r2" + ] + }, + "expected_output": [ + "2.1-r2", + "2.2" + ] + }, + { + "description": "univers Alpine treats \"2.1-r2\" and \"2.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1-r2", + "2.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.4\" before \"2.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2", + "1.0.4" + ] + }, + "expected_output": [ + "1.0.4", + "2.2" + ] + }, + { + "description": "univers Alpine treats \"2.2\" and \"1.0.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.2", + "1.0.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.4\" before \"20060811\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20060811", + "1.0.4" + ] + }, + "expected_output": [ + "1.0.4", + "20060811" + ] + }, + { + "description": "univers Alpine treats \"1.0.4\" and \"20060811\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.4", + "20060811" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"20060811\" before \"20061003\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20061003", + "20060811" + ] + }, + "expected_output": [ + "20060811", + "20061003" + ] + }, + { + "description": "univers Alpine treats \"20060811\" and \"20061003\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20060811", + "20061003" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1_pre20060810\" before \"20061003\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20061003", + "0.1_pre20060810" + ] + }, + "expected_output": [ + "0.1_pre20060810", + "20061003" + ] + }, + { + "description": "univers Alpine treats \"20061003\" and \"0.1_pre20060810\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20061003", + "0.1_pre20060810" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1_pre20060810\" before \"0.1_pre20060817\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.1_pre20060817", + "0.1_pre20060810" + ] + }, + "expected_output": [ + "0.1_pre20060810", + "0.1_pre20060817" + ] + }, + { + "description": "univers Alpine treats \"0.1_pre20060810\" and \"0.1_pre20060817\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1_pre20060810", + "0.1_pre20060817" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1_pre20060817\" before \"1.0.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.3", + "0.1_pre20060817" + ] + }, + "expected_output": [ + "0.1_pre20060817", + "1.0.3" + ] + }, + { + "description": "univers Alpine treats \"0.1_pre20060817\" and \"1.0.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1_pre20060817", + "1.0.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"3.2.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.2-r1", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "3.2.2-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"3.2.2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "3.2.2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.2.2-r1\" before \"3.2.2-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.2-r2", + "3.2.2-r1" + ] + }, + "expected_output": [ + "3.2.2-r1", + "3.2.2-r2" + ] + }, + { + "description": "univers Alpine treats \"3.2.2-r1\" and \"3.2.2-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.2.2-r1", + "3.2.2-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.2.2-r2\" before \"3.3.17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.3.17", + "3.2.2-r2" + ] + }, + "expected_output": [ + "3.2.2-r2", + "3.3.17" + ] + }, + { + "description": "univers Alpine treats \"3.2.2-r2\" and \"3.3.17\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.2.2-r2", + "3.3.17" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.59s-r11\" before \"3.3.17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.3.17", + "0.59s-r11" + ] + }, + "expected_output": [ + "0.59s-r11", + "3.3.17" + ] + }, + { + "description": "univers Alpine treats \"3.3.17\" and \"0.59s-r11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.3.17", + "0.59s-r11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.59s-r11\" before \"0.65\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.65", + "0.59s-r11" + ] + }, + "expected_output": [ + "0.59s-r11", + "0.65" + ] + }, + { + "description": "univers Alpine treats \"0.59s-r11\" and \"0.65\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.59s-r11", + "0.65" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.10-r2\" before \"0.65\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.65", + "0.2.10-r2" + ] + }, + "expected_output": [ + "0.2.10-r2", + "0.65" + ] + }, + { + "description": "univers Alpine treats \"0.65\" and \"0.2.10-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.65", + "0.2.10-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.10-r2\" before \"2.01\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.01", + "0.2.10-r2" + ] + }, + "expected_output": [ + "0.2.10-r2", + "2.01" + ] + }, + { + "description": "univers Alpine treats \"0.2.10-r2\" and \"2.01\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.10-r2", + "2.01" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.01\" before \"3.9.10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.9.10", + "2.01" + ] + }, + "expected_output": [ + "2.01", + "3.9.10" + ] + }, + { + "description": "univers Alpine treats \"2.01\" and \"3.9.10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.01", + "3.9.10" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.18\" before \"3.9.10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.9.10", + "1.2.18" + ] + }, + "expected_output": [ + "1.2.18", + "3.9.10" + ] + }, + { + "description": "univers Alpine treats \"3.9.10\" and \"1.2.18\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.9.10", + "1.2.18" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.18\" before \"1.5.11-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.5.11-r2", + "1.2.18" + ] + }, + "expected_output": [ + "1.2.18", + "1.5.11-r2" + ] + }, + { + "description": "univers Alpine treats \"1.2.18\" and \"1.5.11-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.18", + "1.5.11-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.5.11-r2\" before \"1.5.13-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.5.13-r1", + "1.5.11-r2" + ] + }, + "expected_output": [ + "1.5.11-r2", + "1.5.13-r1" + ] + }, + { + "description": "univers Alpine treats \"1.5.11-r2\" and \"1.5.13-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.5.11-r2", + "1.5.13-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.12-r1\" before \"1.5.13-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.5.13-r1", + "1.3.12-r1" + ] + }, + "expected_output": [ + "1.3.12-r1", + "1.5.13-r1" + ] + }, + { + "description": "univers Alpine treats \"1.5.13-r1\" and \"1.3.12-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.5.13-r1", + "1.3.12-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.12-r1\" before \"2.0.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.1", + "1.3.12-r1" + ] + }, + "expected_output": [ + "1.3.12-r1", + "2.0.1" + ] + }, + { + "description": "univers Alpine treats \"1.3.12-r1\" and \"2.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.12-r1", + "2.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.2\" before \"2.0.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.3", + "2.0.2" + ] + }, + "expected_output": [ + "2.0.2", + "2.0.3" + ] + }, + { + "description": "univers Alpine treats \"2.0.2\" and \"2.0.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.2", + "2.0.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.0\" before \"2.0.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.3", + "0.2.0" + ] + }, + "expected_output": [ + "0.2.0", + "2.0.3" + ] + }, + { + "description": "univers Alpine treats \"2.0.3\" and \"0.2.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.3", + "0.2.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.0\" before \"5.5-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.5-r2", + "0.2.0" + ] + }, + "expected_output": [ + "0.2.0", + "5.5-r2" + ] + }, + { + "description": "univers Alpine treats \"0.2.0\" and \"5.5-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.0", + "5.5-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.5-r2\" before \"5.5-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.5-r3", + "5.5-r2" + ] + }, + "expected_output": [ + "5.5-r2", + "5.5-r3" + ] + }, + { + "description": "univers Alpine treats \"5.5-r2\" and \"5.5-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.5-r2", + "5.5-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.25.3\" before \"5.5-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.5-r3", + "0.25.3" + ] + }, + "expected_output": [ + "0.25.3", + "5.5-r3" + ] + }, + { + "description": "univers Alpine treats \"5.5-r3\" and \"0.25.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.5-r3", + "0.25.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.25.3\" before \"0.26.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.26.1-r1", + "0.25.3" + ] + }, + "expected_output": [ + "0.25.3", + "0.26.1-r1" + ] + }, + { + "description": "univers Alpine treats \"0.25.3\" and \"0.26.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.25.3", + "0.26.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.26.1-r1\" before \"5.2.1.2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.2.1.2-r1", + "0.26.1-r1" + ] + }, + "expected_output": [ + "0.26.1-r1", + "5.2.1.2-r1" + ] + }, + { + "description": "univers Alpine treats \"0.26.1-r1\" and \"5.2.1.2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.26.1-r1", + "5.2.1.2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.2.1.2-r1\" before \"5.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.4", + "5.2.1.2-r1" + ] + }, + "expected_output": [ + "5.2.1.2-r1", + "5.4" + ] + }, + { + "description": "univers Alpine treats \"5.2.1.2-r1\" and \"5.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.2.1.2-r1", + "5.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.60-r11\" before \"5.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.4", + "1.60-r11" + ] + }, + "expected_output": [ + "1.60-r11", + "5.4" + ] + }, + { + "description": "univers Alpine treats \"5.4\" and \"1.60-r11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.4", + "1.60-r11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.60-r11\" before \"1.60-r12\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.60-r12", + "1.60-r11" + ] + }, + "expected_output": [ + "1.60-r11", + "1.60-r12" + ] + }, + { + "description": "univers Alpine treats \"1.60-r11\" and \"1.60-r12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.60-r11", + "1.60-r12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.60-r12\" before \"110-r8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "110-r8", + "1.60-r12" + ] + }, + "expected_output": [ + "1.60-r12", + "110-r8" + ] + }, + { + "description": "univers Alpine treats \"1.60-r12\" and \"110-r8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.60-r12", + "110-r8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.17-r2\" before \"110-r8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "110-r8", + "0.17-r2" + ] + }, + "expected_output": [ + "0.17-r2", + "110-r8" + ] + }, + { + "description": "univers Alpine treats \"110-r8\" and \"0.17-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "110-r8", + "0.17-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.17-r2\" before \"1.05-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.05-r4", + "0.17-r2" + ] + }, + "expected_output": [ + "0.17-r2", + "1.05-r4" + ] + }, + { + "description": "univers Alpine treats \"0.17-r2\" and \"1.05-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.17-r2", + "1.05-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.05-r4\" before \"5.28.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.28.0", + "1.05-r4" + ] + }, + "expected_output": [ + "1.05-r4", + "5.28.0" + ] + }, + { + "description": "univers Alpine treats \"1.05-r4\" and \"5.28.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.05-r4", + "5.28.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.51.6-r1\" before \"5.28.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.28.0", + "0.51.6-r1" + ] + }, + "expected_output": [ + "0.51.6-r1", + "5.28.0" + ] + }, + { + "description": "univers Alpine treats \"5.28.0\" and \"0.51.6-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.28.0", + "0.51.6-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.51.6-r1\" before \"1.0.6-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.6-r6", + "0.51.6-r1" + ] + }, + "expected_output": [ + "0.51.6-r1", + "1.0.6-r6" + ] + }, + { + "description": "univers Alpine treats \"0.51.6-r1\" and \"1.0.6-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.51.6-r1", + "1.0.6-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8.3\" before \"1.0.6-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.6-r6", + "0.8.3" + ] + }, + "expected_output": [ + "0.8.3", + "1.0.6-r6" + ] + }, + { + "description": "univers Alpine treats \"1.0.6-r6\" and \"0.8.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.6-r6", + "0.8.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8.3\" before \"1.42\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.42", + "0.8.3" + ] + }, + "expected_output": [ + "0.8.3", + "1.42" + ] + }, + { + "description": "univers Alpine treats \"0.8.3\" and \"1.42\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.8.3", + "1.42" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.42\" before \"20030719\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20030719", + "1.42" + ] + }, + "expected_output": [ + "1.42", + "20030719" + ] + }, + { + "description": "univers Alpine treats \"1.42\" and \"20030719\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.42", + "20030719" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.01\" before \"20030719\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20030719", + "4.01" + ] + }, + "expected_output": [ + "4.01", + "20030719" + ] + }, + { + "description": "univers Alpine treats \"20030719\" and \"4.01\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20030719", + "4.01" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.01\" before \"4.20\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.20", + "4.01" + ] + }, + "expected_output": [ + "4.01", + "4.20" + ] + }, + { + "description": "univers Alpine treats \"4.01\" and \"4.20\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.01", + "4.20" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.20070118\" before \"4.20\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.20", + "0.20070118" + ] + }, + "expected_output": [ + "0.20070118", + "4.20" + ] + }, + { + "description": "univers Alpine treats \"4.20\" and \"0.20070118\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.20", + "0.20070118" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.20070118\" before \"0.20070207_rc1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.20070207_rc1", + "0.20070118" + ] + }, + "expected_output": [ + "0.20070118", + "0.20070207_rc1" + ] + }, + { + "description": "univers Alpine treats \"0.20070118\" and \"0.20070207_rc1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.20070118", + "0.20070207_rc1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.20070207_rc1\" before \"1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0", + "0.20070207_rc1" + ] + }, + "expected_output": [ + "0.20070207_rc1", + "1.0" + ] + }, + { + "description": "univers Alpine treats \"0.20070207_rc1\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.20070207_rc1", + "1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0\" before \"1.13.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.13.0", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "1.13.0" + ] + }, + { + "description": "univers Alpine treats \"1.0\" and \"1.13.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0", + "1.13.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.13.0\" before \"1.13.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.13.1", + "1.13.0" + ] + }, + "expected_output": [ + "1.13.0", + "1.13.1" + ] + }, + { + "description": "univers Alpine treats \"1.13.0\" and \"1.13.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.13.0", + "1.13.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.21\" before \"1.13.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.13.1", + "0.21" + ] + }, + "expected_output": [ + "0.21", + "1.13.1" + ] + }, + { + "description": "univers Alpine treats \"1.13.1\" and \"0.21\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.13.1", + "0.21" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.7-r3\" before \"0.21\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.21", + "0.3.7-r3" + ] + }, + "expected_output": [ + "0.3.7-r3", + "0.21" + ] + }, + { + "description": "univers Alpine treats \"0.21\" and \"0.3.7-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.21", + "0.3.7-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.7-r3\" before \"0.4.10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.4.10", + "0.3.7-r3" + ] + }, + "expected_output": [ + "0.3.7-r3", + "0.4.10" + ] + }, + { + "description": "univers Alpine treats \"0.3.7-r3\" and \"0.4.10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3.7-r3", + "0.4.10" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.4.10\" before \"0.5.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.5.0", + "0.4.10" + ] + }, + "expected_output": [ + "0.4.10", + "0.5.0" + ] + }, + { + "description": "univers Alpine treats \"0.4.10\" and \"0.5.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.4.10", + "0.5.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5.0\" before \"0.5.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.5.5", + "0.5.0" + ] + }, + "expected_output": [ + "0.5.0", + "0.5.5" + ] + }, + { + "description": "univers Alpine treats \"0.5.0\" and \"0.5.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.5.0", + "0.5.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5.5\" before \"0.5.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.5.7", + "0.5.5" + ] + }, + "expected_output": [ + "0.5.5", + "0.5.7" + ] + }, + { + "description": "univers Alpine treats \"0.5.5\" and \"0.5.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.5.5", + "0.5.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.5.7\" before \"0.6.11-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.6.11-r1", + "0.5.7" + ] + }, + "expected_output": [ + "0.5.7", + "0.6.11-r1" + ] + }, + { + "description": "univers Alpine treats \"0.5.7\" and \"0.6.11-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.5.7", + "0.6.11-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.11-r1\" before \"2.3.30-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.3.30-r2", + "0.6.11-r1" + ] + }, + "expected_output": [ + "0.6.11-r1", + "2.3.30-r2" + ] + }, + { + "description": "univers Alpine treats \"0.6.11-r1\" and \"2.3.30-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.6.11-r1", + "2.3.30-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.3.30-r2\" before \"3.7_p1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.7_p1", + "2.3.30-r2" + ] + }, + "expected_output": [ + "2.3.30-r2", + "3.7_p1" + ] + }, + { + "description": "univers Alpine treats \"2.3.30-r2\" and \"3.7_p1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.3.30-r2", + "3.7_p1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3\" before \"3.7_p1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.7_p1", + "1.3" + ] + }, + "expected_output": [ + "1.3", + "3.7_p1" + ] + }, + { + "description": "univers Alpine treats \"3.7_p1\" and \"1.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.7_p1", + "1.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.10.1\" before \"1.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3", + "0.10.1" + ] + }, + "expected_output": [ + "0.10.1", + "1.3" + ] + }, + { + "description": "univers Alpine treats \"1.3\" and \"0.10.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3", + "0.10.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.10.1\" before \"4.3_p2-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.3_p2-r1", + "0.10.1" + ] + }, + "expected_output": [ + "0.10.1", + "4.3_p2-r1" + ] + }, + { + "description": "univers Alpine treats \"0.10.1\" and \"4.3_p2-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.10.1", + "4.3_p2-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.3_p2-r1\" before \"4.3_p2-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.3_p2-r5", + "4.3_p2-r1" + ] + }, + "expected_output": [ + "4.3_p2-r1", + "4.3_p2-r5" + ] + }, + { + "description": "univers Alpine treats \"4.3_p2-r1\" and \"4.3_p2-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.3_p2-r1", + "4.3_p2-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.3_p2-r5\" before \"4.4_p1-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.4_p1-r6", + "4.3_p2-r5" + ] + }, + "expected_output": [ + "4.3_p2-r5", + "4.4_p1-r6" + ] + }, + { + "description": "univers Alpine treats \"4.3_p2-r5\" and \"4.4_p1-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.3_p2-r5", + "4.4_p1-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.4_p1-r6\" before \"4.5_p1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.5_p1-r1", + "4.4_p1-r6" + ] + }, + "expected_output": [ + "4.4_p1-r6", + "4.5_p1-r1" + ] + }, + { + "description": "univers Alpine treats \"4.4_p1-r6\" and \"4.5_p1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.4_p1-r6", + "4.5_p1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.5_p1\" before \"4.5_p1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.5_p1-r1", + "4.5_p1" + ] + }, + "expected_output": [ + "4.5_p1", + "4.5_p1-r1" + ] + }, + { + "description": "univers Alpine treats \"4.5_p1-r1\" and \"4.5_p1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.5_p1-r1", + "4.5_p1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.8c-r1\" before \"4.5_p1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.5_p1", + "0.9.8c-r1" + ] + }, + "expected_output": [ + "0.9.8c-r1", + "4.5_p1" + ] + }, + { + "description": "univers Alpine treats \"4.5_p1\" and \"0.9.8c-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.5_p1", + "0.9.8c-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.8c-r1\" before \"0.9.8d\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.8d", + "0.9.8c-r1" + ] + }, + "expected_output": [ + "0.9.8c-r1", + "0.9.8d" + ] + }, + { + "description": "univers Alpine treats \"0.9.8c-r1\" and \"0.9.8d\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.8c-r1", + "0.9.8d" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.8d\" before \"2.4.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.4.4", + "0.9.8d" + ] + }, + "expected_output": [ + "0.9.8d", + "2.4.4" + ] + }, + { + "description": "univers Alpine treats \"0.9.8d\" and \"2.4.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.8d", + "2.4.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.4.4\" before \"2.4.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.4.7", + "2.4.4" + ] + }, + "expected_output": [ + "2.4.4", + "2.4.7" + ] + }, + { + "description": "univers Alpine treats \"2.4.4\" and \"2.4.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.4.4", + "2.4.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.0.6\" before \"2.4.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.4.7", + "2.0.6" + ] + }, + "expected_output": [ + "2.0.6", + "2.4.7" + ] + }, + { + "description": "univers Alpine treats \"2.4.7\" and \"2.0.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.4.7", + "2.0.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.78-r3\" before \"2.0.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.0.6", + "0.78-r3" + ] + }, + "expected_output": [ + "0.78-r3", + "2.0.6" + ] + }, + { + "description": "univers Alpine treats \"2.0.6\" and \"0.78-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.0.6", + "0.78-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.2\" before \"0.78-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.78-r3", + "0.3.2" + ] + }, + "expected_output": [ + "0.3.2", + "0.78-r3" + ] + }, + { + "description": "univers Alpine treats \"0.78-r3\" and \"0.3.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.78-r3", + "0.3.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.2\" before \"1.7.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.7.1-r1", + "0.3.2" + ] + }, + "expected_output": [ + "0.3.2", + "1.7.1-r1" + ] + }, + { + "description": "univers Alpine treats \"0.3.2\" and \"1.7.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3.2", + "1.7.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.7.1-r1\" before \"2.5.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.5.9", + "1.7.1-r1" + ] + }, + "expected_output": [ + "1.7.1-r1", + "2.5.9" + ] + }, + { + "description": "univers Alpine treats \"1.7.1-r1\" and \"2.5.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.7.1-r1", + "2.5.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.13\" before \"2.5.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.5.9", + "0.1.13" + ] + }, + "expected_output": [ + "0.1.13", + "2.5.9" + ] + }, + { + "description": "univers Alpine treats \"2.5.9\" and \"0.1.13\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.5.9", + "0.1.13" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.13\" before \"0.1.15\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.1.15", + "0.1.13" + ] + }, + "expected_output": [ + "0.1.13", + "0.1.15" + ] + }, + { + "description": "univers Alpine treats \"0.1.13\" and \"0.1.15\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.13", + "0.1.15" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.15\" before \"0.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.4", + "0.1.15" + ] + }, + "expected_output": [ + "0.1.15", + "0.4" + ] + }, + { + "description": "univers Alpine treats \"0.1.15\" and \"0.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.15", + "0.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.4\" before \"0.9.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.6", + "0.4" + ] + }, + "expected_output": [ + "0.4", + "0.9.6" + ] + }, + { + "description": "univers Alpine treats \"0.4\" and \"0.9.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.4", + "0.9.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.6\" before \"2.2.0-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2.0-r1", + "0.9.6" + ] + }, + "expected_output": [ + "0.9.6", + "2.2.0-r1" + ] + }, + { + "description": "univers Alpine treats \"0.9.6\" and \"2.2.0-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.6", + "2.2.0-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.2.0-r1\" before \"2.2.3-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.2.3-r2", + "2.2.0-r1" + ] + }, + "expected_output": [ + "2.2.0-r1", + "2.2.3-r2" + ] + }, + { + "description": "univers Alpine treats \"2.2.0-r1\" and \"2.2.3-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.2.0-r1", + "2.2.3-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.1-r1\" before \"5.8.8-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.8.8-r2", + "1.3.1-r1" + ] + }, + "expected_output": [ + "1.3.1-r1", + "5.8.8-r2" + ] + }, + { + "description": "univers Alpine treats \"1.3.1-r1\" and \"5.8.8-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.1-r1", + "5.8.8-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.1.6-r4\" before \"5.8.8-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.8.8-r2", + "5.1.6-r4" + ] + }, + "expected_output": [ + "5.1.6-r4", + "5.8.8-r2" + ] + }, + { + "description": "univers Alpine treats \"5.8.8-r2\" and \"5.1.6-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.8.8-r2", + "5.1.6-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.1.6-r4\" before \"5.1.6-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.1.6-r6", + "5.1.6-r4" + ] + }, + "expected_output": [ + "5.1.6-r4", + "5.1.6-r6" + ] + }, + { + "description": "univers Alpine treats \"5.1.6-r4\" and \"5.1.6-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.1.6-r4", + "5.1.6-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.1.6-r6\" before \"5.2.1-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.2.1-r3", + "5.1.6-r6" + ] + }, + "expected_output": [ + "5.1.6-r6", + "5.2.1-r3" + ] + }, + { + "description": "univers Alpine treats \"5.1.6-r6\" and \"5.2.1-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.1.6-r6", + "5.2.1-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.11.3\" before \"5.2.1-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.2.1-r3", + "0.11.3" + ] + }, + "expected_output": [ + "0.11.3", + "5.2.1-r3" + ] + }, + { + "description": "univers Alpine treats \"5.2.1-r3\" and \"0.11.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.2.1-r3", + "0.11.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.11.3\" before \"1.10.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.10.7", + "0.11.3" + ] + }, + "expected_output": [ + "0.11.3", + "1.10.7" + ] + }, + { + "description": "univers Alpine treats \"0.11.3\" and \"1.10.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.11.3", + "1.10.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.7-r1\" before \"1.10.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.10.7", + "1.7-r1" + ] + }, + "expected_output": [ + "1.7-r1", + "1.10.7" + ] + }, + { + "description": "univers Alpine treats \"1.10.7\" and \"1.7-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.10.7", + "1.7-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.20\" before \"1.7-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.7-r1", + "0.1.20" + ] + }, + "expected_output": [ + "0.1.20", + "1.7-r1" + ] + }, + { + "description": "univers Alpine treats \"1.7-r1\" and \"0.1.20\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.7-r1", + "0.1.20" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.20\" before \"0.1.23\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.1.23", + "0.1.20" + ] + }, + "expected_output": [ + "0.1.20", + "0.1.23" + ] + }, + { + "description": "univers Alpine treats \"0.1.20\" and \"0.1.23\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.20", + "0.1.23" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.23\" before \"5b-r9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5b-r9", + "0.1.23" + ] + }, + "expected_output": [ + "0.1.23", + "5b-r9" + ] + }, + { + "description": "univers Alpine treats \"0.1.23\" and \"5b-r9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.23", + "5b-r9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.2.10\" before \"5b-r9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5b-r9", + "2.2.10" + ] + }, + "expected_output": [ + "2.2.10", + "5b-r9" + ] + }, + { + "description": "univers Alpine treats \"5b-r9\" and \"2.2.10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5b-r9", + "2.2.10" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.2.10\" before \"2.3.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.3.6", + "2.2.10" + ] + }, + "expected_output": [ + "2.2.10", + "2.3.6" + ] + }, + { + "description": "univers Alpine treats \"2.2.10\" and \"2.3.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.2.10", + "2.3.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.3.6\" before \"8.0.12\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.0.12", + "2.3.6" + ] + }, + "expected_output": [ + "2.3.6", + "8.0.12" + ] + }, + { + "description": "univers Alpine treats \"2.3.6\" and \"8.0.12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.3.6", + "8.0.12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.4.3-r16\" before \"8.0.12\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.0.12", + "2.4.3-r16" + ] + }, + "expected_output": [ + "2.4.3-r16", + "8.0.12" + ] + }, + { + "description": "univers Alpine treats \"8.0.12\" and \"2.4.3-r16\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "8.0.12", + "2.4.3-r16" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.4.3-r16\" before \"2.4.4-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.4.4-r4", + "2.4.3-r16" + ] + }, + "expected_output": [ + "2.4.3-r16", + "2.4.4-r4" + ] + }, + { + "description": "univers Alpine treats \"2.4.3-r16\" and \"2.4.4-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.4.3-r16", + "2.4.4-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.4.4-r4\" before \"3.0.3-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.0.3-r5", + "2.4.4-r4" + ] + }, + "expected_output": [ + "2.4.4-r4", + "3.0.3-r5" + ] + }, + { + "description": "univers Alpine treats \"2.4.4-r4\" and \"3.0.3-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.4.4-r4", + "3.0.3-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.0.3-r5\" before \"3.0.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.0.6", + "3.0.3-r5" + ] + }, + "expected_output": [ + "3.0.3-r5", + "3.0.6" + ] + }, + { + "description": "univers Alpine treats \"3.0.3-r5\" and \"3.0.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.0.3-r5", + "3.0.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.0.6\" before \"3.2.6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.6", + "3.0.6" + ] + }, + "expected_output": [ + "3.0.6", + "3.2.6" + ] + }, + { + "description": "univers Alpine treats \"3.0.6\" and \"3.2.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.0.6", + "3.2.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.2.6\" before \"3.2.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.7", + "3.2.6" + ] + }, + "expected_output": [ + "3.2.6", + "3.2.7" + ] + }, + { + "description": "univers Alpine treats \"3.2.6\" and \"3.2.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.2.6", + "3.2.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.1_rc8\" before \"3.2.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.7", + "0.3.1_rc8" + ] + }, + "expected_output": [ + "0.3.1_rc8", + "3.2.7" + ] + }, + { + "description": "univers Alpine treats \"3.2.7\" and \"0.3.1_rc8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.2.7", + "0.3.1_rc8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.1_rc8\" before \"22.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "22.2", + "0.3.1_rc8" + ] + }, + "expected_output": [ + "0.3.1_rc8", + "22.2" + ] + }, + { + "description": "univers Alpine treats \"0.3.1_rc8\" and \"22.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3.1_rc8", + "22.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"22.2\" before \"22.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "22.3", + "22.2" + ] + }, + "expected_output": [ + "22.2", + "22.3" + ] + }, + { + "description": "univers Alpine treats \"22.2\" and \"22.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "22.2", + "22.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.2\" before \"22.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "22.3", + "1.2.2" + ] + }, + "expected_output": [ + "1.2.2", + "22.3" + ] + }, + { + "description": "univers Alpine treats \"22.3\" and \"1.2.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "22.3", + "1.2.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.2\" before \"2.04\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.04", + "1.2.2" + ] + }, + "expected_output": [ + "1.2.2", + "2.04" + ] + }, + { + "description": "univers Alpine treats \"1.2.2\" and \"2.04\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.2", + "2.04" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.04\" before \"2.4.3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.4.3-r1", + "2.04" + ] + }, + "expected_output": [ + "2.04", + "2.4.3-r1" + ] + }, + { + "description": "univers Alpine treats \"2.04\" and \"2.4.3-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.04", + "2.4.3-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.4.3-r1\" before \"2.4.3-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.4.3-r4", + "2.4.3-r1" + ] + }, + "expected_output": [ + "2.4.3-r1", + "2.4.3-r4" + ] + }, + { + "description": "univers Alpine treats \"2.4.3-r1\" and \"2.4.3-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.4.3-r1", + "2.4.3-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.98.6-r1\" before \"2.4.3-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.4.3-r4", + "0.98.6-r1" + ] + }, + "expected_output": [ + "0.98.6-r1", + "2.4.3-r4" + ] + }, + { + "description": "univers Alpine treats \"2.4.3-r4\" and \"0.98.6-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.4.3-r4", + "0.98.6-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.98.6-r1\" before \"5.7-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.7-r2", + "0.98.6-r1" + ] + }, + "expected_output": [ + "0.98.6-r1", + "5.7-r2" + ] + }, + { + "description": "univers Alpine treats \"0.98.6-r1\" and \"5.7-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.98.6-r1", + "5.7-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.7-r2\" before \"5.7-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.7-r3", + "5.7-r2" + ] + }, + "expected_output": [ + "5.7-r2", + "5.7-r3" + ] + }, + { + "description": "univers Alpine treats \"5.7-r2\" and \"5.7-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.7-r2", + "5.7-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.1_p4\" before \"5.7-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.7-r3", + "5.1_p4" + ] + }, + "expected_output": [ + "5.1_p4", + "5.7-r3" + ] + }, + { + "description": "univers Alpine treats \"5.7-r3\" and \"5.1_p4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.7-r3", + "5.1_p4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.5\" before \"5.1_p4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.1_p4", + "1.0.5" + ] + }, + "expected_output": [ + "1.0.5", + "5.1_p4" + ] + }, + { + "description": "univers Alpine treats \"5.1_p4\" and \"1.0.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.1_p4", + "1.0.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.5\" before \"3.6.19-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.6.19-r1", + "1.0.5" + ] + }, + "expected_output": [ + "1.0.5", + "3.6.19-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0.5\" and \"3.6.19-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.5", + "3.6.19-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.6.19\" before \"3.6.19-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.6.19-r1", + "3.6.19" + ] + }, + "expected_output": [ + "3.6.19", + "3.6.19-r1" + ] + }, + { + "description": "univers Alpine treats \"3.6.19-r1\" and \"3.6.19\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.6.19-r1", + "3.6.19" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"3.6.19\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.6.19", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "3.6.19" + ] + }, + { + "description": "univers Alpine treats \"3.6.19\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.6.19", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"3.8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.8", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "3.8" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"3.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "3.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.3\" before \"3.8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.8", + "0.2.3" + ] + }, + "expected_output": [ + "0.2.3", + "3.8" + ] + }, + { + "description": "univers Alpine treats \"3.8\" and \"0.2.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.8", + "0.2.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.3\" before \"1.2.15-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.15-r3", + "0.2.3" + ] + }, + "expected_output": [ + "0.2.3", + "1.2.15-r3" + ] + }, + { + "description": "univers Alpine treats \"0.2.3\" and \"1.2.15-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.3", + "1.2.15-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.6-r1\" before \"1.2.15-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.15-r3", + "1.2.6-r1" + ] + }, + "expected_output": [ + "1.2.6-r1", + "1.2.15-r3" + ] + }, + { + "description": "univers Alpine treats \"1.2.15-r3\" and \"1.2.6-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.15-r3", + "1.2.6-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.6-r1\" before \"2.6.8-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.8-r2", + "1.2.6-r1" + ] + }, + "expected_output": [ + "1.2.6-r1", + "2.6.8-r2" + ] + }, + { + "description": "univers Alpine treats \"1.2.6-r1\" and \"2.6.8-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.6-r1", + "2.6.8-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.8-r2\" before \"2.6.9-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.9-r1", + "2.6.8-r2" + ] + }, + "expected_output": [ + "2.6.8-r2", + "2.6.9-r1" + ] + }, + { + "description": "univers Alpine treats \"2.6.8-r2\" and \"2.6.9-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.8-r2", + "2.6.9-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.7\" before \"2.6.9-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.9-r1", + "1.7" + ] + }, + "expected_output": [ + "1.7", + "2.6.9-r1" + ] + }, + { + "description": "univers Alpine treats \"2.6.9-r1\" and \"1.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.9-r1", + "1.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.7\" before \"1.7b\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.7b", + "1.7" + ] + }, + "expected_output": [ + "1.7", + "1.7b" + ] + }, + { + "description": "univers Alpine treats \"1.7\" and \"1.7b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.7", + "1.7b" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.7b\" before \"1.8.4-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.8.4-r3", + "1.7b" + ] + }, + "expected_output": [ + "1.7b", + "1.8.4-r3" + ] + }, + { + "description": "univers Alpine treats \"1.7b\" and \"1.8.4-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.7b", + "1.8.4-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.8.4-r3\" before \"1.8.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.8.5", + "1.8.4-r3" + ] + }, + "expected_output": [ + "1.8.4-r3", + "1.8.5" + ] + }, + { + "description": "univers Alpine treats \"1.8.4-r3\" and \"1.8.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.8.4-r3", + "1.8.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.8.5\" before \"1.8.5_p2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.8.5_p2", + "1.8.5" + ] + }, + "expected_output": [ + "1.8.5", + "1.8.5_p2" + ] + }, + { + "description": "univers Alpine treats \"1.8.5\" and \"1.8.5_p2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.8.5", + "1.8.5_p2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.3\" before \"1.8.5_p2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.8.5_p2", + "1.1.3" + ] + }, + "expected_output": [ + "1.1.3", + "1.8.5_p2" + ] + }, + { + "description": "univers Alpine treats \"1.8.5_p2\" and \"1.1.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.8.5_p2", + "1.1.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.3\" before \"3.0.22-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.0.22-r3", + "1.1.3" + ] + }, + "expected_output": [ + "1.1.3", + "3.0.22-r3" + ] + }, + { + "description": "univers Alpine treats \"1.1.3\" and \"3.0.22-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.3", + "3.0.22-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.0.22-r3\" before \"3.0.24\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.0.24", + "3.0.22-r3" + ] + }, + "expected_output": [ + "3.0.22-r3", + "3.0.24" + ] + }, + { + "description": "univers Alpine treats \"3.0.22-r3\" and \"3.0.24\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.0.22-r3", + "3.0.24" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.0.24\" before \"4.0.2-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.0.2-r5", + "3.0.24" + ] + }, + "expected_output": [ + "3.0.24", + "4.0.2-r5" + ] + }, + { + "description": "univers Alpine treats \"3.0.24\" and \"4.0.2-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.0.24", + "4.0.2-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.0.2-r5\" before \"4.0.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.0.3", + "4.0.2-r5" + ] + }, + "expected_output": [ + "4.0.2-r5", + "4.0.3" + ] + }, + { + "description": "univers Alpine treats \"4.0.2-r5\" and \"4.0.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.0.2-r5", + "4.0.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.98\" before \"4.0.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.0.3", + "0.98" + ] + }, + "expected_output": [ + "0.98", + "4.0.3" + ] + }, + { + "description": "univers Alpine treats \"4.0.3\" and \"0.98\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.0.3", + "0.98" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.98\" before \"1.00\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.00", + "0.98" + ] + }, + "expected_output": [ + "0.98", + "1.00" + ] + }, + { + "description": "univers Alpine treats \"0.98\" and \"1.00\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.98", + "1.00" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.00\" before \"4.1.4-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1.4-r1", + "1.00" + ] + }, + "expected_output": [ + "1.00", + "4.1.4-r1" + ] + }, + { + "description": "univers Alpine treats \"1.00\" and \"4.1.4-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.00", + "4.1.4-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.1.4-r1\" before \"4.1.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1.5", + "4.1.4-r1" + ] + }, + "expected_output": [ + "4.1.4-r1", + "4.1.5" + ] + }, + { + "description": "univers Alpine treats \"4.1.4-r1\" and \"4.1.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.1.4-r1", + "4.1.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.3\" before \"4.1.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1.5", + "2.3" + ] + }, + "expected_output": [ + "2.3", + "4.1.5" + ] + }, + { + "description": "univers Alpine treats \"4.1.5\" and \"2.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.1.5", + "2.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.3\" before \"2.17-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.17-r3", + "2.3" + ] + }, + "expected_output": [ + "2.3", + "2.17-r3" + ] + }, + { + "description": "univers Alpine treats \"2.3\" and \"2.17-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.3", + "2.17-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.7\" before \"2.17-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.17-r3", + "0.1.7" + ] + }, + "expected_output": [ + "0.1.7", + "2.17-r3" + ] + }, + { + "description": "univers Alpine treats \"2.17-r3\" and \"0.1.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.17-r3", + "0.1.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.7\" before \"1.11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.11", + "0.1.7" + ] + }, + "expected_output": [ + "0.1.7", + "1.11" + ] + }, + { + "description": "univers Alpine treats \"0.1.7\" and \"1.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.7", + "1.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.11\" before \"4.2.1-r11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.2.1-r11", + "1.11" + ] + }, + "expected_output": [ + "1.11", + "4.2.1-r11" + ] + }, + { + "description": "univers Alpine treats \"1.11\" and \"4.2.1-r11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.11", + "4.2.1-r11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.2.3\" before \"4.2.1-r11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.2.1-r11", + "3.2.3" + ] + }, + "expected_output": [ + "3.2.3", + "4.2.1-r11" + ] + }, + { + "description": "univers Alpine treats \"4.2.1-r11\" and \"3.2.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.2.1-r11", + "3.2.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.2.3\" before \"3.2.4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.4", + "3.2.3" + ] + }, + "expected_output": [ + "3.2.3", + "3.2.4" + ] + }, + { + "description": "univers Alpine treats \"3.2.3\" and \"3.2.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.2.3", + "3.2.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.2.4\" before \"3.2.8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.8", + "3.2.4" + ] + }, + "expected_output": [ + "3.2.4", + "3.2.8" + ] + }, + { + "description": "univers Alpine treats \"3.2.4\" and \"3.2.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.2.4", + "3.2.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.2.8\" before \"3.2.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.9", + "3.2.8" + ] + }, + "expected_output": [ + "3.2.8", + "3.2.9" + ] + }, + { + "description": "univers Alpine treats \"3.2.8\" and \"3.2.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.2.8", + "3.2.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.2.3\" before \"3.2.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.9", + "3.2.3" + ] + }, + "expected_output": [ + "3.2.3", + "3.2.9" + ] + }, + { + "description": "univers Alpine treats \"3.2.9\" and \"3.2.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.2.9", + "3.2.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4.9-r2\" before \"3.2.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.2.9", + "1.4.9-r2" + ] + }, + "expected_output": [ + "1.4.9-r2", + "3.2.9" + ] + }, + { + "description": "univers Alpine treats \"3.2.9\" and \"1.4.9-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.2.9", + "1.4.9-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4.9-r2\" before \"2.9.11_pre20051101-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20051101-r2", + "1.4.9-r2" + ] + }, + "expected_output": [ + "1.4.9-r2", + "2.9.11_pre20051101-r2" + ] + }, + { + "description": "univers Alpine treats \"1.4.9-r2\" and \"2.9.11_pre20051101-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4.9-r2", + "2.9.11_pre20051101-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.9.11_pre20051101-r2\" before \"2.9.11_pre20051101-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20051101-r3", + "2.9.11_pre20051101-r2" + ] + }, + "expected_output": [ + "2.9.11_pre20051101-r2", + "2.9.11_pre20051101-r3" + ] + }, + { + "description": "univers Alpine treats \"2.9.11_pre20051101-r2\" and \"2.9.11_pre20051101-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20051101-r2", + "2.9.11_pre20051101-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.9.11_pre20051101\" before \"2.9.11_pre20051101-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20051101-r3", + "2.9.11_pre20051101" + ] + }, + "expected_output": [ + "2.9.11_pre20051101", + "2.9.11_pre20051101-r3" + ] + }, + { + "description": "univers Alpine treats \"2.9.11_pre20051101-r3\" and \"2.9.11_pre20051101\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20051101-r3", + "2.9.11_pre20051101" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.9.11_pre20051101\" before \"2.9.11_pre20061021-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20061021-r1", + "2.9.11_pre20051101" + ] + }, + "expected_output": [ + "2.9.11_pre20051101", + "2.9.11_pre20061021-r1" + ] + }, + { + "description": "univers Alpine treats \"2.9.11_pre20051101\" and \"2.9.11_pre20061021-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20051101", + "2.9.11_pre20061021-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.9.11_pre20061021-r1\" before \"2.9.11_pre20061021-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20061021-r2", + "2.9.11_pre20061021-r1" + ] + }, + "expected_output": [ + "2.9.11_pre20061021-r1", + "2.9.11_pre20061021-r2" + ] + }, + { + "description": "univers Alpine treats \"2.9.11_pre20061021-r1\" and \"2.9.11_pre20061021-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20061021-r1", + "2.9.11_pre20061021-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.9.11_pre20061021-r2\" before \"5.36-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.36-r1", + "2.9.11_pre20061021-r2" + ] + }, + "expected_output": [ + "2.9.11_pre20061021-r2", + "5.36-r1" + ] + }, + { + "description": "univers Alpine treats \"2.9.11_pre20061021-r2\" and \"5.36-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.9.11_pre20061021-r2", + "5.36-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"5.36-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.36-r1", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "5.36-r1" + ] + }, + { + "description": "univers Alpine treats \"5.36-r1\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.36-r1", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"7.0-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "7.0-r2", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "7.0-r2" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"7.0-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "7.0-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.4.5\" before \"7.0-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "7.0-r2", + "2.4.5" + ] + }, + "expected_output": [ + "2.4.5", + "7.0-r2" + ] + }, + { + "description": "univers Alpine treats \"7.0-r2\" and \"2.4.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "7.0-r2", + "2.4.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.4.5\" before \"2.6.1.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1.2", + "2.4.5" + ] + }, + "expected_output": [ + "2.4.5", + "2.6.1.2" + ] + }, + { + "description": "univers Alpine treats \"2.4.5\" and \"2.6.1.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.4.5", + "2.6.1.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.1.2\" before \"2.6.1.3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1.3-r1", + "2.6.1.2" + ] + }, + "expected_output": [ + "2.6.1.2", + "2.6.1.3-r1" + ] + }, + { + "description": "univers Alpine treats \"2.6.1.2\" and \"2.6.1.3-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1.2", + "2.6.1.3-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.1.3\" before \"2.6.1.3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1.3-r1", + "2.6.1.3" + ] + }, + "expected_output": [ + "2.6.1.3", + "2.6.1.3-r1" + ] + }, + { + "description": "univers Alpine treats \"2.6.1.3-r1\" and \"2.6.1.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1.3-r1", + "2.6.1.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.1.3-r1\" before \"12.17.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "12.17.9", + "2.6.1.3-r1" + ] + }, + "expected_output": [ + "2.6.1.3-r1", + "12.17.9" + ] + }, + { + "description": "univers Alpine treats \"2.6.1.3-r1\" and \"12.17.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.1.3-r1", + "12.17.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.12\" before \"12.17.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "12.17.9", + "1.1.12" + ] + }, + "expected_output": [ + "1.1.12", + "12.17.9" + ] + }, + { + "description": "univers Alpine treats \"12.17.9\" and \"1.1.12\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "12.17.9", + "1.1.12" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.7\" before \"1.1.12\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.12", + "1.1.7" + ] + }, + "expected_output": [ + "1.1.7", + "1.1.12" + ] + }, + { + "description": "univers Alpine treats \"1.1.12\" and \"1.1.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.12", + "1.1.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.7\" before \"2.5.14\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.5.14", + "1.1.7" + ] + }, + "expected_output": [ + "1.1.7", + "2.5.14" + ] + }, + { + "description": "univers Alpine treats \"1.1.7\" and \"2.5.14\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.7", + "2.5.14" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.5.14\" before \"2.6.6-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.6-r1", + "2.5.14" + ] + }, + "expected_output": [ + "2.5.14", + "2.6.6-r1" + ] + }, + { + "description": "univers Alpine treats \"2.5.14\" and \"2.6.6-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.5.14", + "2.6.6-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.6-r1\" before \"2.6.7\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.7", + "2.6.6-r1" + ] + }, + "expected_output": [ + "2.6.6-r1", + "2.6.7" + ] + }, + { + "description": "univers Alpine treats \"2.6.6-r1\" and \"2.6.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.6-r1", + "2.6.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.7\" before \"2.6.9-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.9-r1", + "2.6.7" + ] + }, + "expected_output": [ + "2.6.7", + "2.6.9-r1" + ] + }, + { + "description": "univers Alpine treats \"2.6.7\" and \"2.6.9-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.7", + "2.6.9-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.6.9\" before \"2.6.9-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.9-r1", + "2.6.9" + ] + }, + "expected_output": [ + "2.6.9", + "2.6.9-r1" + ] + }, + { + "description": "univers Alpine treats \"2.6.9-r1\" and \"2.6.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.9-r1", + "2.6.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.39\" before \"2.6.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.6.9", + "1.39" + ] + }, + "expected_output": [ + "1.39", + "2.6.9" + ] + }, + { + "description": "univers Alpine treats \"2.6.9\" and \"1.39\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.6.9", + "1.39" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9\" before \"1.39\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.39", + "0.9" + ] + }, + "expected_output": [ + "0.9", + "1.39" + ] + }, + { + "description": "univers Alpine treats \"1.39\" and \"0.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.39", + "0.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9\" before \"2.61-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.61-r2", + "0.9" + ] + }, + "expected_output": [ + "0.9", + "2.61-r2" + ] + }, + { + "description": "univers Alpine treats \"0.9\" and \"2.61-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9", + "2.61-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.61-r2\" before \"4.5.14\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.5.14", + "2.61-r2" + ] + }, + "expected_output": [ + "2.61-r2", + "4.5.14" + ] + }, + { + "description": "univers Alpine treats \"2.61-r2\" and \"4.5.14\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.61-r2", + "4.5.14" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.09-r1\" before \"4.5.14\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.5.14", + "4.09-r1" + ] + }, + "expected_output": [ + "4.09-r1", + "4.5.14" + ] + }, + { + "description": "univers Alpine treats \"4.5.14\" and \"4.09-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.5.14", + "4.09-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.1\" before \"4.09-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.09-r1", + "1.3.1" + ] + }, + "expected_output": [ + "1.3.1", + "4.09-r1" + ] + }, + { + "description": "univers Alpine treats \"4.09-r1\" and \"1.3.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.09-r1", + "1.3.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.1\" before \"1.3.2-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.2-r3", + "1.3.1" + ] + }, + "expected_output": [ + "1.3.1", + "1.3.2-r3" + ] + }, + { + "description": "univers Alpine treats \"1.3.1\" and \"1.3.2-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.1", + "1.3.2-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.2-r3\" before \"1.6.8_p12-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.6.8_p12-r1", + "1.3.2-r3" + ] + }, + "expected_output": [ + "1.3.2-r3", + "1.6.8_p12-r1" + ] + }, + { + "description": "univers Alpine treats \"1.3.2-r3\" and \"1.6.8_p12-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.2-r3", + "1.6.8_p12-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.6.8_p9-r2\" before \"1.6.8_p12-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.6.8_p12-r1", + "1.6.8_p9-r2" + ] + }, + "expected_output": [ + "1.6.8_p9-r2", + "1.6.8_p12-r1" + ] + }, + { + "description": "univers Alpine treats \"1.6.8_p12-r1\" and \"1.6.8_p9-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.6.8_p12-r1", + "1.6.8_p9-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.0-r1\" before \"1.6.8_p9-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.6.8_p9-r2", + "1.3.0-r1" + ] + }, + "expected_output": [ + "1.3.0-r1", + "1.6.8_p9-r2" + ] + }, + { + "description": "univers Alpine treats \"1.6.8_p9-r2\" and \"1.3.0-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.6.8_p9-r2", + "1.3.0-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3.0-r1\" before \"3.11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.11", + "1.3.0-r1" + ] + }, + "expected_output": [ + "1.3.0-r1", + "3.11" + ] + }, + { + "description": "univers Alpine treats \"1.3.0-r1\" and \"3.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3.0-r1", + "3.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.11\" before \"3.20\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.20", + "3.11" + ] + }, + "expected_output": [ + "3.11", + "3.20" + ] + }, + { + "description": "univers Alpine treats \"3.11\" and \"3.20\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.11", + "3.20" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.6.11-r1\" before \"3.20\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.20", + "1.6.11-r1" + ] + }, + "expected_output": [ + "1.6.11-r1", + "3.20" + ] + }, + { + "description": "univers Alpine treats \"3.20\" and \"1.6.11-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.20", + "1.6.11-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.6.9\" before \"1.6.11-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.6.11-r1", + "1.6.9" + ] + }, + "expected_output": [ + "1.6.9", + "1.6.11-r1" + ] + }, + { + "description": "univers Alpine treats \"1.6.11-r1\" and \"1.6.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.6.11-r1", + "1.6.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.6.9\" before \"5.0.5-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.0.5-r2", + "1.6.9" + ] + }, + "expected_output": [ + "1.6.9", + "5.0.5-r2" + ] + }, + { + "description": "univers Alpine treats \"1.6.9\" and \"5.0.5-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.6.9", + "5.0.5-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.86-r5\" before \"5.0.5-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.0.5-r2", + "2.86-r5" + ] + }, + "expected_output": [ + "2.86-r5", + "5.0.5-r2" + ] + }, + { + "description": "univers Alpine treats \"5.0.5-r2\" and \"2.86-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.0.5-r2", + "2.86-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.86-r5\" before \"2.86-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.86-r6", + "2.86-r5" + ] + }, + "expected_output": [ + "2.86-r5", + "2.86-r6" + ] + }, + { + "description": "univers Alpine treats \"2.86-r5\" and \"2.86-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.86-r5", + "2.86-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.15.1-r1\" before \"2.86-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.86-r6", + "1.15.1-r1" + ] + }, + "expected_output": [ + "1.15.1-r1", + "2.86-r6" + ] + }, + { + "description": "univers Alpine treats \"2.86-r6\" and \"1.15.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.86-r6", + "1.15.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.15.1-r1\" before \"8.4.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.4.9", + "1.15.1-r1" + ] + }, + "expected_output": [ + "1.15.1-r1", + "8.4.9" + ] + }, + { + "description": "univers Alpine treats \"1.15.1-r1\" and \"8.4.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.15.1-r1", + "8.4.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"7.6-r8\" before \"8.4.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "8.4.9", + "7.6-r8" + ] + }, + "expected_output": [ + "7.6-r8", + "8.4.9" + ] + }, + { + "description": "univers Alpine treats \"8.4.9\" and \"7.6-r8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "8.4.9", + "7.6-r8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.9.4-r2\" before \"7.6-r8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "7.6-r8", + "3.9.4-r2" + ] + }, + "expected_output": [ + "3.9.4-r2", + "7.6-r8" + ] + }, + { + "description": "univers Alpine treats \"7.6-r8\" and \"3.9.4-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "7.6-r8", + "3.9.4-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.9.4-r2\" before \"3.9.4-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.9.4-r3", + "3.9.4-r2" + ] + }, + "expected_output": [ + "3.9.4-r2", + "3.9.4-r3" + ] + }, + { + "description": "univers Alpine treats \"3.9.4-r2\" and \"3.9.4-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.9.4-r2", + "3.9.4-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"3.9.4-r3\" before \"3.9.5-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.9.5-r2", + "3.9.4-r3" + ] + }, + "expected_output": [ + "3.9.4-r3", + "3.9.5-r2" + ] + }, + { + "description": "univers Alpine treats \"3.9.4-r3\" and \"3.9.5-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.9.4-r3", + "3.9.5-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.9\" before \"3.9.5-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "3.9.5-r2", + "1.1.9" + ] + }, + "expected_output": [ + "1.1.9", + "3.9.5-r2" + ] + }, + { + "description": "univers Alpine treats \"3.9.5-r2\" and \"1.1.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "3.9.5-r2", + "1.1.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.6\" before \"1.1.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.9", + "1.0.6" + ] + }, + "expected_output": [ + "1.0.6", + "1.1.9" + ] + }, + { + "description": "univers Alpine treats \"1.1.9\" and \"1.0.6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.9", + "1.0.6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.6\" before \"5.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.9", + "1.0.6" + ] + }, + "expected_output": [ + "1.0.6", + "5.9" + ] + }, + { + "description": "univers Alpine treats \"1.0.6\" and \"5.9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.6", + "5.9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"5.9\" before \"6.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.5", + "5.9" + ] + }, + "expected_output": [ + "5.9", + "6.5" + ] + }, + { + "description": "univers Alpine treats \"5.9\" and \"6.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.9", + "6.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.40-r1\" before \"6.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.5", + "0.40-r1" + ] + }, + "expected_output": [ + "0.40-r1", + "6.5" + ] + }, + { + "description": "univers Alpine treats \"6.5\" and \"0.40-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.5", + "0.40-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.40-r1\" before \"2.25b-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.25b-r5", + "0.40-r1" + ] + }, + "expected_output": [ + "0.40-r1", + "2.25b-r5" + ] + }, + { + "description": "univers Alpine treats \"0.40-r1\" and \"2.25b-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.40-r1", + "2.25b-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.25b-r5\" before \"2.25b-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.25b-r6", + "2.25b-r5" + ] + }, + "expected_output": [ + "2.25b-r5", + "2.25b-r6" + ] + }, + { + "description": "univers Alpine treats \"2.25b-r5\" and \"2.25b-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.25b-r5", + "2.25b-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.4\" before \"2.25b-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.25b-r6", + "1.0.4" + ] + }, + "expected_output": [ + "1.0.4", + "2.25b-r6" + ] + }, + { + "description": "univers Alpine treats \"2.25b-r6\" and \"1.0.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.25b-r6", + "1.0.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.4\" before \"1.0.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.5", + "1.0.4" + ] + }, + "expected_output": [ + "1.0.4", + "1.0.5" + ] + }, + { + "description": "univers Alpine treats \"1.0.4\" and \"1.0.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.4", + "1.0.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.5\" before \"1.4_p12-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4_p12-r2", + "1.0.5" + ] + }, + "expected_output": [ + "1.0.5", + "1.4_p12-r2" + ] + }, + { + "description": "univers Alpine treats \"1.0.5\" and \"1.4_p12-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.5", + "1.4_p12-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4_p12-r2\" before \"1.4_p12-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4_p12-r5", + "1.4_p12-r2" + ] + }, + "expected_output": [ + "1.4_p12-r2", + "1.4_p12-r5" + ] + }, + { + "description": "univers Alpine treats \"1.4_p12-r2\" and \"1.4_p12-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4_p12-r2", + "1.4_p12-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1\" before \"1.4_p12-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4_p12-r5", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "1.4_p12-r5" + ] + }, + { + "description": "univers Alpine treats \"1.4_p12-r5\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4_p12-r5", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.0-r1\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "0.2.0-r1" + ] + }, + "expected_output": [ + "0.2.0-r1", + "1.1" + ] + }, + { + "description": "univers Alpine treats \"1.1\" and \"0.2.0-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1", + "0.2.0-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.0-r1\" before \"0.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.2.1", + "0.2.0-r1" + ] + }, + "expected_output": [ + "0.2.0-r1", + "0.2.1" + ] + }, + { + "description": "univers Alpine treats \"0.2.0-r1\" and \"0.2.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.0-r1", + "0.2.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.1\" before \"0.9.28-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.28-r1", + "0.2.1" + ] + }, + "expected_output": [ + "0.2.1", + "0.9.28-r1" + ] + }, + { + "description": "univers Alpine treats \"0.2.1\" and \"0.9.28-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.1", + "0.9.28-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.28-r1\" before \"0.9.28-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.28-r2", + "0.9.28-r1" + ] + }, + "expected_output": [ + "0.9.28-r1", + "0.9.28-r2" + ] + }, + { + "description": "univers Alpine treats \"0.9.28-r1\" and \"0.9.28-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.28-r1", + "0.9.28-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.28-r2\" before \"0.9.28.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.28.1", + "0.9.28-r2" + ] + }, + "expected_output": [ + "0.9.28-r2", + "0.9.28.1" + ] + }, + { + "description": "univers Alpine treats \"0.9.28-r2\" and \"0.9.28.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.28-r2", + "0.9.28.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.28\" before \"0.9.28.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.28.1", + "0.9.28" + ] + }, + "expected_output": [ + "0.9.28", + "0.9.28.1" + ] + }, + { + "description": "univers Alpine treats \"0.9.28.1\" and \"0.9.28\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.28.1", + "0.9.28" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"103\" before \"104-r11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "104-r11", + "103" + ] + }, + "expected_output": [ + "103", + "104-r11" + ] + }, + { + "description": "univers Alpine treats \"103\" and \"104-r11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "103", + "104-r11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"104-r9\" before \"104-r11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "104-r11", + "104-r9" + ] + }, + "expected_output": [ + "104-r9", + "104-r11" + ] + }, + { + "description": "univers Alpine treats \"104-r11\" and \"104-r9\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "104-r11", + "104-r9" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.23-r1\" before \"104-r9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "104-r9", + "1.23-r1" + ] + }, + "expected_output": [ + "1.23-r1", + "104-r9" + ] + }, + { + "description": "univers Alpine treats \"104-r9\" and \"1.23-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "104-r9", + "1.23-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.23\" before \"1.23-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.23-r1", + "1.23" + ] + }, + "expected_output": [ + "1.23", + "1.23-r1" + ] + }, + { + "description": "univers Alpine treats \"1.23-r1\" and \"1.23\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.23-r1", + "1.23" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2\" before \"1.23-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.23-r1", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "1.23-r1" + ] + }, + { + "description": "univers Alpine treats \"1.23-r1\" and \"1.0.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.23-r1", + "1.0.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2\" before \"5.52-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.52-r1", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "5.52-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0.2\" and \"5.52-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "5.52-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.5_rc2\" before \"5.52-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "5.52-r1", + "1.2.5_rc2" + ] + }, + "expected_output": [ + "1.2.5_rc2", + "5.52-r1" + ] + }, + { + "description": "univers Alpine treats \"5.52-r1\" and \"1.2.5_rc2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "5.52-r1", + "1.2.5_rc2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1\" before \"1.2.5_rc2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.5_rc2", + "0.1" + ] + }, + "expected_output": [ + "0.1", + "1.2.5_rc2" + ] + }, + { + "description": "univers Alpine treats \"1.2.5_rc2\" and \"0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.5_rc2", + "0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1\" before \"0.71-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.71-r1", + "0.1" + ] + }, + "expected_output": [ + "0.1", + "0.71-r1" + ] + }, + { + "description": "univers Alpine treats \"0.1\" and \"0.71-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1", + "0.71-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.71-r1\" before \"20040406-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20040406-r1", + "0.71-r1" + ] + }, + "expected_output": [ + "0.71-r1", + "20040406-r1" + ] + }, + { + "description": "univers Alpine treats \"0.71-r1\" and \"20040406-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.71-r1", + "20040406-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.12r-r4\" before \"20040406-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "20040406-r1", + "2.12r-r4" + ] + }, + "expected_output": [ + "2.12r-r4", + "20040406-r1" + ] + }, + { + "description": "univers Alpine treats \"20040406-r1\" and \"2.12r-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "20040406-r1", + "2.12r-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.12r-r4\" before \"2.12r-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.12r-r5", + "2.12r-r4" + ] + }, + "expected_output": [ + "2.12r-r4", + "2.12r-r5" + ] + }, + { + "description": "univers Alpine treats \"2.12r-r4\" and \"2.12r-r5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.12r-r4", + "2.12r-r5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.0.7\" before \"2.12r-r5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.12r-r5", + "0.0.7" + ] + }, + "expected_output": [ + "0.0.7", + "2.12r-r5" + ] + }, + { + "description": "univers Alpine treats \"2.12r-r5\" and \"0.0.7\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.12r-r5", + "0.0.7" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.0.7\" before \"1.0.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.3", + "0.0.7" + ] + }, + "expected_output": [ + "0.0.7", + "1.0.3" + ] + }, + { + "description": "univers Alpine treats \"0.0.7\" and \"1.0.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.0.7", + "1.0.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.3\" before \"1.8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.8", + "1.0.3" + ] + }, + "expected_output": [ + "1.0.3", + "1.8" + ] + }, + { + "description": "univers Alpine treats \"1.0.3\" and \"1.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.3", + "1.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.8\" before \"7.0.17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "7.0.17", + "1.8" + ] + }, + "expected_output": [ + "1.8", + "7.0.17" + ] + }, + { + "description": "univers Alpine treats \"1.8\" and \"7.0.17\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.8", + "7.0.17" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"7.0.17\" before \"7.0.174\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "7.0.174", + "7.0.17" + ] + }, + "expected_output": [ + "7.0.17", + "7.0.174" + ] + }, + { + "description": "univers Alpine treats \"7.0.17\" and \"7.0.174\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "7.0.17", + "7.0.174" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"7.0.174\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "7.0.174", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "7.0.174" + ] + }, + { + "description": "univers Alpine treats \"7.0.174\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "7.0.174", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.1.1-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1-r3", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.1.1-r3" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"1.1.1-r3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "1.1.1-r3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.4_pre20061029\" before \"1.1.1-r3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1-r3", + "0.3.4_pre20061029" + ] + }, + "expected_output": [ + "0.3.4_pre20061029", + "1.1.1-r3" + ] + }, + { + "description": "univers Alpine treats \"1.1.1-r3\" and \"0.3.4_pre20061029\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1-r3", + "0.3.4_pre20061029" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.4_pre20061029\" before \"0.4.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.4.0", + "0.3.4_pre20061029" + ] + }, + "expected_output": [ + "0.3.4_pre20061029", + "0.4.0" + ] + }, + { + "description": "univers Alpine treats \"0.3.4_pre20061029\" and \"0.4.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3.4_pre20061029", + "0.4.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.2\" before \"0.4.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.4.0", + "0.1.2" + ] + }, + "expected_output": [ + "0.1.2", + "0.4.0" + ] + }, + { + "description": "univers Alpine treats \"0.4.0\" and \"0.1.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.4.0", + "0.1.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.2\" before \"1.10.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.10.2", + "0.1.2" + ] + }, + "expected_output": [ + "0.1.2", + "1.10.2" + ] + }, + { + "description": "univers Alpine treats \"0.1.2\" and \"1.10.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.2", + "1.10.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.10.2\" before \"2.16\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.16", + "1.10.2" + ] + }, + "expected_output": [ + "1.10.2", + "2.16" + ] + }, + { + "description": "univers Alpine treats \"1.10.2\" and \"2.16\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.10.2", + "2.16" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.16\" before \"28\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "28", + "2.16" + ] + }, + "expected_output": [ + "2.16", + "28" + ] + }, + { + "description": "univers Alpine treats \"2.16\" and \"28\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.16", + "28" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.99.4\" before \"28\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "28", + "0.99.4" + ] + }, + "expected_output": [ + "0.99.4", + "28" + ] + }, + { + "description": "univers Alpine treats \"28\" and \"0.99.4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "28", + "0.99.4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.99.4\" before \"1.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.13", + "0.99.4" + ] + }, + "expected_output": [ + "0.99.4", + "1.13" + ] + }, + { + "description": "univers Alpine treats \"0.99.4\" and \"1.13\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.99.4", + "1.13" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.13\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.13", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.13" + ] + }, + { + "description": "univers Alpine treats \"1.13\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.13", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.1.2-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2-r2", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.1.2-r2" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"1.1.2-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "1.1.2-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"1.1.2-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2-r2", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "1.1.2-r2" + ] + }, + { + "description": "univers Alpine treats \"1.1.2-r2\" and \"1.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.2-r2", + "1.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"1.1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "1.1.1" + ] + }, + { + "description": "univers Alpine treats \"1.1.0\" and \"1.1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "1.1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.0\" before \"1.1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1", + "0.6.0" + ] + }, + "expected_output": [ + "0.6.0", + "1.1.1" + ] + }, + { + "description": "univers Alpine treats \"1.1.1\" and \"0.6.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1", + "0.6.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.6.0\" before \"6.6.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.6.3", + "0.6.0" + ] + }, + "expected_output": [ + "0.6.0", + "6.6.3" + ] + }, + { + "description": "univers Alpine treats \"0.6.0\" and \"6.6.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.6.0", + "6.6.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.1\" before \"6.6.3\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "6.6.3", + "1.1.1" + ] + }, + "expected_output": [ + "1.1.1", + "6.6.3" + ] + }, + { + "description": "univers Alpine treats \"6.6.3\" and \"1.1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "6.6.3", + "1.1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.0\" before \"1.1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "0.2.0" + ] + }, + "expected_output": [ + "0.2.0", + "1.1.0" + ] + }, + { + "description": "univers Alpine treats \"1.1.0\" and \"0.2.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "0.2.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.0\" before \"0.3.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.3.0", + "0.2.0" + ] + }, + "expected_output": [ + "0.2.0", + "0.3.0" + ] + }, + { + "description": "univers Alpine treats \"0.2.0\" and \"0.3.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.0", + "0.3.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.3.0\" before \"1.1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1", + "0.3.0" + ] + }, + "expected_output": [ + "0.3.0", + "1.1.1" + ] + }, + { + "description": "univers Alpine treats \"0.3.0\" and \"1.1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.3.0", + "1.1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.1\" before \"1.2.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.0", + "1.1.1" + ] + }, + "expected_output": [ + "1.1.1", + "1.2.0" + ] + }, + { + "description": "univers Alpine treats \"1.1.1\" and \"1.2.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1", + "1.2.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"1.2.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.0", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "1.2.0" + ] + }, + { + "description": "univers Alpine treats \"1.2.0\" and \"1.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.0", + "1.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"1.6.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.6.5", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "1.6.5" + ] + }, + { + "description": "univers Alpine treats \"1.1.0\" and \"1.6.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "1.6.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"1.4.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4.2", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "1.4.2" + ] + }, + { + "description": "univers Alpine treats \"1.1.0\" and \"1.4.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "1.4.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.1\" before \"1.4.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4.2", + "1.1.1" + ] + }, + "expected_output": [ + "1.1.1", + "1.4.2" + ] + }, + { + "description": "univers Alpine treats \"1.4.2\" and \"1.1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4.2", + "1.1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.1\" before \"2.8.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.1", + "1.1.1" + ] + }, + "expected_output": [ + "1.1.1", + "2.8.1" + ] + }, + { + "description": "univers Alpine treats \"1.1.1\" and \"2.8.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1", + "2.8.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.0\" before \"2.8.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.8.1", + "1.2.0" + ] + }, + "expected_output": [ + "1.2.0", + "2.8.1" + ] + }, + { + "description": "univers Alpine treats \"2.8.1\" and \"1.2.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.8.1", + "1.2.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.0\" before \"4.1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1.0", + "1.2.0" + ] + }, + "expected_output": [ + "1.2.0", + "4.1.0" + ] + }, + { + "description": "univers Alpine treats \"1.2.0\" and \"4.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.0", + "4.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.4.1\" before \"4.1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1.0", + "0.4.1" + ] + }, + "expected_output": [ + "0.4.1", + "4.1.0" + ] + }, + { + "description": "univers Alpine treats \"4.1.0\" and \"0.4.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.1.0", + "0.4.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.4.1\" before \"1.9.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.9.1", + "0.4.1" + ] + }, + "expected_output": [ + "0.4.1", + "1.9.1" + ] + }, + { + "description": "univers Alpine treats \"0.4.1\" and \"1.9.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.4.1", + "1.9.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.9.1\" before \"2.1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.1", + "1.9.1" + ] + }, + "expected_output": [ + "1.9.1", + "2.1.1" + ] + }, + { + "description": "univers Alpine treats \"1.9.1\" and \"2.1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.9.1", + "2.1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.4.1\" before \"2.1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.1.1", + "1.4.1" + ] + }, + "expected_output": [ + "1.4.1", + "2.1.1" + ] + }, + { + "description": "univers Alpine treats \"2.1.1\" and \"1.4.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.1.1", + "1.4.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.9.1-r1\" before \"1.4.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.4.1", + "0.9.1-r1" + ] + }, + "expected_output": [ + "0.9.1-r1", + "1.4.1" + ] + }, + { + "description": "univers Alpine treats \"1.4.1\" and \"0.9.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.4.1", + "0.9.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8.1\" before \"0.9.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.9.1-r1", + "0.8.1" + ] + }, + "expected_output": [ + "0.8.1", + "0.9.1-r1" + ] + }, + { + "description": "univers Alpine treats \"0.9.1-r1\" and \"0.8.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.9.1-r1", + "0.8.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8.1\" before \"1.2.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1-r1", + "0.8.1" + ] + }, + "expected_output": [ + "0.8.1", + "1.2.1-r1" + ] + }, + { + "description": "univers Alpine treats \"0.8.1\" and \"1.2.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.8.1", + "1.2.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"1.2.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1-r1", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "1.2.1-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.1-r1\" and \"1.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1-r1", + "1.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"1.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "1.2.1" + ] + }, + { + "description": "univers Alpine treats \"1.1.0\" and \"1.2.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "1.2.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.1\" before \"1.1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "0.1.1" + ] + }, + "expected_output": [ + "0.1.1", + "1.1.0" + ] + }, + { + "description": "univers Alpine treats \"1.1.0\" and \"0.1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "0.1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.1\" before \"1.2.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1", + "0.1.1" + ] + }, + "expected_output": [ + "0.1.1", + "1.2.1" + ] + }, + { + "description": "univers Alpine treats \"0.1.1\" and \"1.2.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.1", + "1.2.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.1\" before \"4.1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1.0", + "1.2.1" + ] + }, + "expected_output": [ + "1.2.1", + "4.1.0" + ] + }, + { + "description": "univers Alpine treats \"1.2.1\" and \"4.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.1", + "4.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.1-r1\" before \"4.1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.1.0", + "0.2.1-r1" + ] + }, + "expected_output": [ + "0.2.1-r1", + "4.1.0" + ] + }, + { + "description": "univers Alpine treats \"4.1.0\" and \"0.2.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.1.0", + "0.2.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.2.1-r1\" before \"1.1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "0.2.1-r1" + ] + }, + "expected_output": [ + "0.2.1-r1", + "1.1.0" + ] + }, + { + "description": "univers Alpine treats \"0.2.1-r1\" and \"1.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.2.1-r1", + "1.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.0\" before \"2.7.11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.7.11", + "1.1.0" + ] + }, + "expected_output": [ + "1.1.0", + "2.7.11" + ] + }, + { + "description": "univers Alpine treats \"1.1.0\" and \"2.7.11\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.0", + "2.7.11" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2-r6\" before \"2.7.11\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.7.11", + "1.0.2-r6" + ] + }, + "expected_output": [ + "1.0.2-r6", + "2.7.11" + ] + }, + { + "description": "univers Alpine treats \"2.7.11\" and \"1.0.2-r6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.7.11", + "1.0.2-r6" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.2\" before \"1.0.2-r6\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2-r6", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "1.0.2-r6" + ] + }, + { + "description": "univers Alpine treats \"1.0.2-r6\" and \"1.0.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2-r6", + "1.0.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8\" before \"1.0.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "0.8" + ] + }, + "expected_output": [ + "0.8", + "1.0.2" + ] + }, + { + "description": "univers Alpine treats \"1.0.2\" and \"0.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.2", + "0.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.8\" before \"1.1.1-r4\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1-r4", + "0.8" + ] + }, + "expected_output": [ + "0.8", + "1.1.1-r4" + ] + }, + { + "description": "univers Alpine treats \"0.8\" and \"1.1.1-r4\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.8", + "1.1.1-r4" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.1.1-r4\" before \"222\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "222", + "1.1.1-r4" + ] + }, + "expected_output": [ + "1.1.1-r4", + "222" + ] + }, + { + "description": "univers Alpine treats \"1.1.1-r4\" and \"222\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.1.1-r4", + "222" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"222\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "222", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "222" + ] + }, + { + "description": "univers Alpine treats \"222\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "222", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.1\" before \"1.2.12-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12-r1", + "1.0.1" + ] + }, + "expected_output": [ + "1.0.1", + "1.2.12-r1" + ] + }, + { + "description": "univers Alpine treats \"1.0.1\" and \"1.2.12-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.1", + "1.2.12-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.8\" before \"1.2.12-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12-r1", + "1.2.8" + ] + }, + "expected_output": [ + "1.2.8", + "1.2.12-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.12-r1\" and \"1.2.8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.12-r1", + "1.2.8" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.8\" before \"1.2.9.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.9.1-r1", + "1.2.8" + ] + }, + "expected_output": [ + "1.2.8", + "1.2.9.1-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.8\" and \"1.2.9.1-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.8", + "1.2.9.1-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.9.1\" before \"1.2.9.1-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.9.1-r1", + "1.2.9.1" + ] + }, + "expected_output": [ + "1.2.9.1", + "1.2.9.1-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.9.1-r1\" and \"1.2.9.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.9.1-r1", + "1.2.9.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.9.1\" before \"2.31-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.31-r1", + "1.2.9.1" + ] + }, + "expected_output": [ + "1.2.9.1", + "2.31-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.9.1\" and \"2.31-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.9.1", + "2.31-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"2.31\" before \"2.31-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.31-r1", + "2.31" + ] + }, + "expected_output": [ + "2.31", + "2.31-r1" + ] + }, + { + "description": "univers Alpine treats \"2.31-r1\" and \"2.31\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.31-r1", + "2.31" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.3-r1\" before \"2.31\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "2.31", + "1.2.3-r1" + ] + }, + "expected_output": [ + "1.2.3-r1", + "2.31" + ] + }, + { + "description": "univers Alpine treats \"2.31\" and \"1.2.3-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "2.31", + "1.2.3-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.3\" before \"1.2.3-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.2.3-r1", + "1.2.3" + ] + }, + "expected_output": [ + "1.2.3", + "1.2.3-r1" + ] + }, + { + "description": "univers Alpine treats \"1.2.3-r1\" and \"1.2.3\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.3-r1", + "1.2.3" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.2.3\" before \"4.2.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.2.5", + "1.2.3" + ] + }, + "expected_output": [ + "1.2.3", + "4.2.5" + ] + }, + { + "description": "univers Alpine treats \"1.2.3\" and \"4.2.5\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.2.3", + "4.2.5" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"4.2.5\" before \"4.3.2-r2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "4.3.2-r2", + "4.2.5" + ] + }, + "expected_output": [ + "4.2.5", + "4.3.2-r2" + ] + }, + { + "description": "univers Alpine treats \"4.2.5\" and \"4.3.2-r2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "4.2.5", + "4.3.2-r2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3-r0\" before \"1.3.1-r0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.1-r0", + "1.3-r0" + ] + }, + "expected_output": [ + "1.3-r0", + "1.3.1-r0" + ] + }, + { + "description": "univers Alpine treats \"1.3-r0\" and \"1.3.1-r0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3-r0", + "1.3.1-r0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.3_pre1-r1\" before \"1.3.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.3.2", + "1.3_pre1-r1" + ] + }, + "expected_output": [ + "1.3_pre1-r1", + "1.3.2" + ] + }, + { + "description": "univers Alpine treats \"1.3_pre1-r1\" and \"1.3.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.3_pre1-r1", + "1.3.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0_p9-r0\" before \"1.0_p10-r0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0_p10-r0", + "1.0_p9-r0" + ] + }, + "expected_output": [ + "1.0_p9-r0", + "1.0_p10-r0" + ] + }, + { + "description": "univers Alpine treats \"1.0_p10-r0\" and \"1.0_p9-r0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0_p10-r0", + "1.0_p9-r0" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"0.1.0_alpha_pre2\" before \"0.1.0_alpha\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "0.1.0_alpha", + "0.1.0_alpha_pre2" + ] + }, + "expected_output": [ + "0.1.0_alpha_pre2", + "0.1.0_alpha" + ] + }, + { + "description": "univers Alpine treats \"0.1.0_alpha_pre2\" and \"0.1.0_alpha\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "0.1.0_alpha_pre2", + "0.1.0_alpha" + ] + }, + "expected_output": false + }, + { + "description": "univers Alpine orders \"1.0.0_pre20191002222144-r0\" before \"1.0.0_pre20210530193627-r0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "apk", + "versions": [ + "1.0.0_pre20210530193627-r0", + "1.0.0_pre20191002222144-r0" + ] + }, + "expected_output": [ + "1.0.0_pre20191002222144-r0", + "1.0.0_pre20210530193627-r0" + ] + }, + { + "description": "univers Alpine treats \"1.0.0_pre20191002222144-r0\" and \"1.0.0_pre20210530193627-r0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "apk", + "versions": [ + "1.0.0_pre20191002222144-r0", + "1.0.0_pre20210530193627-r0" + ] + }, + "expected_output": false + } + ] +} diff --git a/testdata/local/tests/conan_univers_range_test.json b/testdata/local/tests/conan_univers_range_test.json new file mode 100644 index 0000000..aa0af59 --- /dev/null +++ b/testdata/local/tests/conan_univers_range_test.json @@ -0,0 +1,595 @@ +{ + "$schema": "https://packageurl.org/schemas/vers-test.schema-0.2.json", + "tests": [ + { + "description": "univers Conan range \"\u003e1.0.0\" contains \"1.0.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1.0.0", + "version": "1.0.1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"\u003e1.0.0\" excludes \"0.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1.0.0", + "version": "0.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"\u003c2.0\" contains \"1.0.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003c2.0", + "version": "1.0.1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"\u003c2.0\" excludes \"2.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003c2.0", + "version": "2.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"\u003e1 \u003c2.0\" contains \"1.5.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0", + "version": "1.5.1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"\u003e1 \u003c2.0\" excludes \"0.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0", + "version": "0.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"\u003e1 \u003c2.0\" excludes \"2.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0", + "version": "2.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"~2.5\" contains \"2.5.0\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=2.5|\u003c2.6-", + "version": "2.5.0" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"~2.5\" contains \"2.5.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=2.5|\u003c2.6-", + "version": "2.5.3" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"~2.5\" excludes \"2.7\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=2.5|\u003c2.6-", + "version": "2.7" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"~2.5\" excludes \"2.6.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=2.5|\u003c2.6-", + "version": "2.6.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"~2.5.1\" contains \"2.5.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=2.5.1|\u003c2.6-", + "version": "2.5.1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"~2.5.1\" contains \"2.5.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=2.5.1|\u003c2.6-", + "version": "2.5.3" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"~2.5.1\" excludes \"2.5\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=2.5.1|\u003c2.6-", + "version": "2.5" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"~2.5.1\" excludes \"2.6.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=2.5.1|\u003c2.6-", + "version": "2.6.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"~1\" contains \"1.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1|\u003c2-", + "version": "1.3" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"~1\" contains \"1.8.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1|\u003c2-", + "version": "1.8.1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"~1\" excludes \"0.8\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1|\u003c2-", + "version": "0.8" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"~1\" excludes \"2.2\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1|\u003c2-", + "version": "2.2" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^1.2\" contains \"1.2.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2|\u003c2-", + "version": "1.2.1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"^1.2\" contains \"1.51\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2|\u003c2-", + "version": "1.51" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"^1.2\" excludes \"1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2|\u003c2-", + "version": "1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^1.2\" excludes \"2\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2|\u003c2-", + "version": "2" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^1.2\" excludes \"2.0.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2|\u003c2-", + "version": "2.0.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^1.2.3\" contains \"1.2.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2.3|\u003c2-", + "version": "1.2.3" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"^1.2.3\" contains \"1.2.4\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2.3|\u003c2-", + "version": "1.2.4" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"^1.2.3\" excludes \"2\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2.3|\u003c2-", + "version": "2" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^1.2.3\" excludes \"2.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2.3|\u003c2-", + "version": "2.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^1.2.3\" excludes \"2.0.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.2.3|\u003c2-", + "version": "2.0.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^0.1.2\" contains \"0.1.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=0.1.2|\u003c0.2-", + "version": "0.1.3" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"^0.1.2\" contains \"0.1.44\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=0.1.2|\u003c0.2-", + "version": "0.1.44" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"^0.1.2\" excludes \"1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=0.1.2|\u003c0.2-", + "version": "1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^0.1.2\" excludes \"0.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=0.1.2|\u003c0.2-", + "version": "0.3" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^0.1.2\" excludes \"0.2.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=0.1.2|\u003c0.2-", + "version": "0.2.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"1.0.0\" contains \"1.0.0\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/1.0.0", + "version": "1.0.0" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"1.0.0\" excludes \"2\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/1.0.0", + "version": "2" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"1.0.0\" excludes \"1.0.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/1.0.0", + "version": "1.0.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"*\" contains \"1.0\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=0.0.0", + "version": "1.0" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"*\" contains \"a.b\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=0.0.0", + "version": "a.b" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"1.0.0 || 2.1.3\" contains \"1.0.0\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/1.0.0|2.1.3", + "version": "1.0.0" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"1.0.0 || 2.1.3\" contains \"2.1.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/1.0.0|2.1.3", + "version": "2.1.3" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"1.0.0 || 2.1.3\" excludes \"2\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/1.0.0|2.1.3", + "version": "2" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"1.0.0 || 2.1.3\" excludes \"1.0.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/1.0.0|2.1.3", + "version": "1.0.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"\u003e1 \u003c2.0 || ^3.2 \" contains \"1.5\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0|\u003e=3.2|\u003c4-", + "version": "1.5" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"\u003e1 \u003c2.0 || ^3.2 \" contains \"3.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0|\u003e=3.2|\u003c4-", + "version": "3.3" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"\u003e1 \u003c2.0 || ^3.2 \" excludes \"2.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0|\u003e=3.2|\u003c4-", + "version": "2.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"\u003e1 \u003c2.0 || ^3.2 \" excludes \"0.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0|\u003e=3.2|\u003c4-", + "version": "0.1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"\u003e1 \u003c2.0 || ^3.2 \" excludes \"5\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0|\u003e=3.2|\u003c4-", + "version": "5" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"*-\" contains \"1.0-pre.1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=0.0.0", + "version": "1.0-pre.1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"\u003e1- \u003c2.0\" contains \"1.5.1-pre1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0", + "version": "1.5.1-pre1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"\u003e1- \u003c2.0\" excludes \"2.1-pre1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0", + "version": "2.1-pre1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"\u003e1- \u003c2.0 || ^3.2 \" contains \"1.5-a1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0|\u003e=3.2|\u003c4-", + "version": "1.5-a1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"\u003e1- \u003c2.0 || ^3.2 \" excludes \"3.3-a1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e1|\u003c2.0|\u003e=3.2|\u003c4-", + "version": "3.3-a1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"^1.1.2-\" contains \"1.2.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.1.2|\u003c2-", + "version": "1.2.3" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"^1.1.2-\" contains \"1.2.0-alpha1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.1.2|\u003c2-", + "version": "1.2.0-alpha1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"^1.1.2-\" excludes \"2.0.0-alpha1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.1.2|\u003c2-", + "version": "2.0.0-alpha1" + }, + "expected_output": false + }, + { + "description": "univers Conan range \"~1.1.2-\" contains \"1.1.3\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.1.2|\u003c1.2-", + "version": "1.1.3" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"~1.1.2-\" contains \"1.1.3-alpha1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.1.2|\u003c1.2-", + "version": "1.1.3-alpha1" + }, + "expected_output": true + }, + { + "description": "univers Conan range \"~1.1.2-\" excludes \"1.2.0-alpha1\".", + "test_group": "recommended", + "test_type": "containment", + "input": { + "vers": "vers:conan/\u003e=1.1.2|\u003c1.2-", + "version": "1.2.0-alpha1" + }, + "expected_output": false + } + ] +} diff --git a/testdata/local/tests/conan_univers_version_cmp_test.json b/testdata/local/tests/conan_univers_version_cmp_test.json new file mode 100644 index 0000000..6ee1b57 --- /dev/null +++ b/testdata/local/tests/conan_univers_version_cmp_test.json @@ -0,0 +1,1128 @@ +{ + "$schema": "https://packageurl.org/schemas/vers-test.schema-0.2.json", + "tests": [ + { + "description": "univers Conan orders \"1\" before \"2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "2", + "1" + ] + }, + "expected_output": [ + "1", + "2" + ] + }, + { + "description": "univers Conan treats \"1\" and \"2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1", + "2" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.0\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "1.1" + ] + }, + { + "description": "univers Conan treats \"1.0\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.0.2\" before \"1.1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1.0", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "1.1.0" + ] + }, + { + "description": "univers Conan treats \"1.0.2\" and \"1.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0.2", + "1.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.3\" before \"1.22\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.22", + "1.3" + ] + }, + "expected_output": [ + "1.3", + "1.22" + ] + }, + { + "description": "univers Conan treats \"1.3\" and \"1.22\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.3", + "1.22" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1.3\" before \"1.1.22\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1.22", + "1.1.3" + ] + }, + "expected_output": [ + "1.1.3", + "1.1.22" + ] + }, + { + "description": "univers Conan treats \"1.1.3\" and \"1.1.22\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1.3", + "1.1.22" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1.1.3\" before \"1.1.1.22\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1.1.22", + "1.1.1.3" + ] + }, + "expected_output": [ + "1.1.1.3", + "1.1.1.22" + ] + }, + { + "description": "univers Conan treats \"1.1.1.3\" and \"1.1.1.22\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1.1.3", + "1.1.1.22" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1.1.1.3\" before \"1.1.1.1.22\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1.1.1.22", + "1.1.1.1.3" + ] + }, + "expected_output": [ + "1.1.1.1.3", + "1.1.1.1.22" + ] + }, + { + "description": "univers Conan treats \"1.1.1.1.3\" and \"1.1.1.1.22\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1.1.1.3", + "1.1.1.1.22" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.0\" before \"2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "2", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "2" + ] + }, + { + "description": "univers Conan treats \"1.0\" and \"2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0", + "2" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.2\" before \"1.3.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.3.1", + "1.2" + ] + }, + "expected_output": [ + "1.2", + "1.3.1" + ] + }, + { + "description": "univers Conan treats \"1.2\" and \"1.3.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.2", + "1.3.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.0.2\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1", + "1.0.2" + ] + }, + "expected_output": [ + "1.0.2", + "1.1" + ] + }, + { + "description": "univers Conan treats \"1.0.2\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0.2", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1.a\" before \"1.1.b\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1.b", + "1.1.a" + ] + }, + "expected_output": [ + "1.1.a", + "1.1.b" + ] + }, + { + "description": "univers Conan treats \"1.1.a\" and \"1.1.b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1.a", + "1.1.b" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1.1.abc\" before \"1.1.1.abz\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1.1.abz", + "1.1.1.abc" + ] + }, + "expected_output": [ + "1.1.1.abc", + "1.1.1.abz" + ] + }, + { + "description": "univers Conan treats \"1.1.1.abc\" and \"1.1.1.abz\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1.1.abc", + "1.1.1.abz" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"a.b.c\" before \"b.c\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "b.c", + "a.b.c" + ] + }, + "expected_output": [ + "a.b.c", + "b.c" + ] + }, + { + "description": "univers Conan treats \"a.b.c\" and \"b.c\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "a.b.c", + "b.c" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1\" before \"1.a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.a", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "1.a" + ] + }, + { + "description": "univers Conan treats \"1.1\" and \"1.a\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1", + "1.a" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1\" before \"1.1a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1a", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "1.1a" + ] + }, + { + "description": "univers Conan treats \"1.1\" and \"1.1a\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1", + "1.1a" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1\" before \"1.1.a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1.a", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "1.1.a" + ] + }, + { + "description": "univers Conan treats \"1.1\" and \"1.1.a\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1", + "1.1.a" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1.a\" before \"1.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.2", + "1.1.a" + ] + }, + "expected_output": [ + "1.1.a", + "1.2" + ] + }, + { + "description": "univers Conan treats \"1.1.a\" and \"1.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1.a", + "1.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1*\" before \"1.20\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.20", + "1.1*" + ] + }, + "expected_output": [ + "1.1*", + "1.20" + ] + }, + { + "description": "univers Conan treats \"1.1*\" and \"1.20\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1*", + "1.20" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1.*\" before \"1.20\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.20", + "1.1.*" + ] + }, + "expected_output": [ + "1.1.*", + "1.20" + ] + }, + { + "description": "univers Conan treats \"1.1.*\" and \"1.20\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1.*", + "1.20" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.2.2\" before \"1.3.*\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.3.*", + "1.2.2" + ] + }, + "expected_output": [ + "1.2.2", + "1.3.*" + ] + }, + { + "description": "univers Conan treats \"1.2.2\" and \"1.3.*\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.2.2", + "1.3.*" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.2.2\" before \"1.2.3*\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.2.3*", + "1.2.2" + ] + }, + "expected_output": [ + "1.2.2", + "1.2.3*" + ] + }, + { + "description": "univers Conan treats \"1.2.2\" and \"1.2.3*\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.2.2", + "1.2.3*" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1+b1\" before \"1.1+b2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1+b2", + "1.1+b1" + ] + }, + "expected_output": [ + "1.1+b1", + "1.1+b2" + ] + }, + { + "description": "univers Conan treats \"1.1+b1\" and \"1.1+b2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1+b1", + "1.1+b2" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1\" before \"1.1+b2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1+b2", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "1.1+b2" + ] + }, + { + "description": "univers Conan treats \"1.1\" and \"1.1+b2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1", + "1.1+b2" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1+b1\" before \"1.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.2", + "1.1+b1" + ] + }, + "expected_output": [ + "1.1+b1", + "1.2" + ] + }, + { + "description": "univers Conan treats \"1.1+b1\" and \"1.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1+b1", + "1.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1+b.3\" before \"1.1+b.22\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1+b.22", + "1.1+b.3" + ] + }, + "expected_output": [ + "1.1+b.3", + "1.1+b.22" + ] + }, + { + "description": "univers Conan treats \"1.1+b.3\" and \"1.1+b.22\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1+b.3", + "1.1+b.22" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1-pre1\" before \"1.1-pre2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1-pre2", + "1.1-pre1" + ] + }, + "expected_output": [ + "1.1-pre1", + "1.1-pre2" + ] + }, + { + "description": "univers Conan treats \"1.1-pre1\" and \"1.1-pre2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1-pre1", + "1.1-pre2" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1-alpha.3\" before \"1.1-alpha.22\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1-alpha.22", + "1.1-alpha.3" + ] + }, + "expected_output": [ + "1.1-alpha.3", + "1.1-alpha.22" + ] + }, + { + "description": "univers Conan treats \"1.1-alpha.3\" and \"1.1-alpha.22\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1-alpha.3", + "1.1-alpha.22" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1-alpha.3+b1\" before \"1.1-alpha.3+b2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1-alpha.3+b2", + "1.1-alpha.3+b1" + ] + }, + "expected_output": [ + "1.1-alpha.3+b1", + "1.1-alpha.3+b2" + ] + }, + { + "description": "univers Conan treats \"1.1-alpha.3+b1\" and \"1.1-alpha.3+b2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1-alpha.3+b1", + "1.1-alpha.3+b2" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1-alpha.1\" before \"1.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1", + "1.1-alpha.1" + ] + }, + "expected_output": [ + "1.1-alpha.1", + "1.1" + ] + }, + { + "description": "univers Conan treats \"1.1-alpha.1\" and \"1.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1-alpha.1", + "1.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1\" before \"1.2-alpha1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.2-alpha1", + "1.1" + ] + }, + "expected_output": [ + "1.1", + "1.2-alpha1" + ] + }, + { + "description": "univers Conan treats \"1.1\" and \"1.2-alpha1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1", + "1.2-alpha1" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.1-alpha.1\" before \"1.1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.1.0", + "1.1-alpha.1" + ] + }, + "expected_output": [ + "1.1-alpha.1", + "1.1.0" + ] + }, + { + "description": "univers Conan treats \"1.1-alpha.1\" and \"1.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.1-alpha.1", + "1.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan orders \"1.0.0-\" before \"1.0.0-alpha1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "conan", + "versions": [ + "1.0.0-alpha1", + "1.0.0-" + ] + }, + "expected_output": [ + "1.0.0-", + "1.0.0-alpha1" + ] + }, + { + "description": "univers Conan treats \"1.0.0-\" and \"1.0.0-alpha1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0.0-", + "1.0.0-alpha1" + ] + }, + "expected_output": false + }, + { + "description": "univers Conan treats \"1\" and \"1.0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1", + "1.0" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1\" and \"1.0.0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1", + "1.0.0" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1.0\" and \"1.0.0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0", + "1.0.0" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1.0\" and \"1.0.0.0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0", + "1.0.0.0" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1-pre1\" and \"1.0-pre1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1-pre1", + "1.0-pre1" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1-pre1\" and \"1.0.0-pre1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1-pre1", + "1.0.0-pre1" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1.0-pre1\" and \"1.0.0-pre1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0-pre1", + "1.0.0-pre1" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1.0-pre1.0\" and \"1.0.0-pre1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0-pre1.0", + "1.0.0-pre1" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1-pre1+b1\" and \"1.0-pre1+b1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1-pre1+b1", + "1.0-pre1+b1" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1-pre1+b1\" and \"1.0.0-pre1+b1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1-pre1+b1", + "1.0.0-pre1+b1" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1.0-pre1+b1\" and \"1.0.0-pre1+b1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0-pre1+b1", + "1.0.0-pre1+b1" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1+b1\" and \"1.0+b1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1+b1", + "1.0+b1" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1+b1\" and \"1.0+b1.0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1+b1", + "1.0+b1.0" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1+b1\" and \"1.0.0+b1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1+b1", + "1.0.0+b1" + ] + }, + "expected_output": true + }, + { + "description": "univers Conan treats \"1.0+b1\" and \"1.0.0+b1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "conan", + "versions": [ + "1.0+b1", + "1.0.0+b1" + ] + }, + "expected_output": true + } + ] +} diff --git a/testdata/local/tests/deb_univers_version_cmp_test.json b/testdata/local/tests/deb_univers_version_cmp_test.json new file mode 100644 index 0000000..0f64933 --- /dev/null +++ b/testdata/local/tests/deb_univers_version_cmp_test.json @@ -0,0 +1,547 @@ +{ + "$schema": "https://packageurl.org/schemas/vers-test.schema-0.2.json", + "tests": [ + { + "description": "univers Debian treats \"0.0.0\" and \"0:0.0.0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0", + "0:0.0.0" + ] + }, + "expected_output": true + }, + { + "description": "univers Debian treats \"0:0.0.0-foo\" and \"0.0.0-foo\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0:0.0.0-foo", + "0.0.0-foo" + ] + }, + "expected_output": true + }, + { + "description": "univers Debian treats \"0.0.0-a\" and \"0:0.0.0-a\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0-a", + "0:0.0.0-a" + ] + }, + "expected_output": true + }, + { + "description": "univers Debian treats \"0.0.0\" and \"0.0.0-0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0", + "0.0.0-0" + ] + }, + "expected_output": true + }, + { + "description": "univers Debian treats \"0.0.0\" and \"0.0.0-00\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0", + "0.0.0-00" + ] + }, + "expected_output": true + }, + { + "description": "univers Debian treats \"0.0.0-0\" and \"0:0.0.0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0-0", + "0:0.0.0" + ] + }, + "expected_output": true + }, + { + "description": "univers Debian orders \"0.0.0-0\" before \"0:0.0.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0:0.0.1", + "0.0.0-0" + ] + }, + "expected_output": [ + "0.0.0-0", + "0:0.0.1" + ] + }, + { + "description": "univers Debian treats \"0.0.0-0\" and \"0:0.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0-0", + "0:0.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"0.0.0-0\" before \"0:0.0.0-a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0:0.0.0-a", + "0.0.0-0" + ] + }, + "expected_output": [ + "0.0.0-0", + "0:0.0.0-a" + ] + }, + { + "description": "univers Debian treats \"0.0.0-0\" and \"0:0.0.0-a\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0-0", + "0:0.0.0-a" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"0.0.0-0\" before \"0:0.0.0-1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0:0.0.0-1", + "0.0.0-0" + ] + }, + "expected_output": [ + "0.0.0-0", + "0:0.0.0-1" + ] + }, + { + "description": "univers Debian treats \"0.0.0-0\" and \"0:0.0.0-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0-0", + "0:0.0.0-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"0.0.9\" before \"0.0.10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0.0.10", + "0.0.9" + ] + }, + "expected_output": [ + "0.0.9", + "0.0.10" + ] + }, + { + "description": "univers Debian treats \"0.0.9\" and \"0.0.10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.9", + "0.0.10" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"0.9.0\" before \"0.10.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0.10.0", + "0.9.0" + ] + }, + "expected_output": [ + "0.9.0", + "0.10.0" + ] + }, + { + "description": "univers Debian treats \"0.9.0\" and \"0.10.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.9.0", + "0.10.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"9.0.0\" before \"10.0.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "10.0.0", + "9.0.0" + ] + }, + "expected_output": [ + "9.0.0", + "10.0.0" + ] + }, + { + "description": "univers Debian treats \"9.0.0\" and \"10.0.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "9.0.0", + "10.0.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"1.2.3-1~deb7u1\" before \"1.2.3-1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "1.2.3-1", + "1.2.3-1~deb7u1" + ] + }, + "expected_output": [ + "1.2.3-1~deb7u1", + "1.2.3-1" + ] + }, + { + "description": "univers Debian treats \"1.2.3-1~deb7u1\" and \"1.2.3-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "1.2.3-1~deb7u1", + "1.2.3-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"2.7.4+reloaded2-13ubuntu1\" before \"2.7.4+reloaded2-13+deb9u1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "2.7.4+reloaded2-13+deb9u1", + "2.7.4+reloaded2-13ubuntu1" + ] + }, + "expected_output": [ + "2.7.4+reloaded2-13ubuntu1", + "2.7.4+reloaded2-13+deb9u1" + ] + }, + { + "description": "univers Debian treats \"2.7.4+reloaded2-13ubuntu1\" and \"2.7.4+reloaded2-13+deb9u1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "2.7.4+reloaded2-13ubuntu1", + "2.7.4+reloaded2-13+deb9u1" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"2.7.4+reloaded2-13\" before \"2.7.4+reloaded2-13+deb9u1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "2.7.4+reloaded2-13+deb9u1", + "2.7.4+reloaded2-13" + ] + }, + "expected_output": [ + "2.7.4+reloaded2-13", + "2.7.4+reloaded2-13+deb9u1" + ] + }, + { + "description": "univers Debian treats \"2.7.4+reloaded2-13\" and \"2.7.4+reloaded2-13+deb9u1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "2.7.4+reloaded2-13", + "2.7.4+reloaded2-13+deb9u1" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"0:0.0.0\" before \"0.0.1-0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0.0.1-0", + "0:0.0.0" + ] + }, + "expected_output": [ + "0:0.0.0", + "0.0.1-0" + ] + }, + { + "description": "univers Debian treats \"0.0.1-0\" and \"0:0.0.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.1-0", + "0:0.0.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"0:0.0.0-1\" before \"0.0.0-a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0-a", + "0:0.0.0-1" + ] + }, + "expected_output": [ + "0:0.0.0-1", + "0.0.0-a" + ] + }, + { + "description": "univers Debian treats \"0.0.0-a\" and \"0:0.0.0-1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0-a", + "0:0.0.0-1" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"0:0.0.0-0\" before \"0.0.0-a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0-a", + "0:0.0.0-0" + ] + }, + "expected_output": [ + "0:0.0.0-0", + "0.0.0-a" + ] + }, + { + "description": "univers Debian treats \"0.0.0-a\" and \"0:0.0.0-0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.0-a", + "0:0.0.0-0" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"0.0.1\" before \"0.0.9\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0.0.9", + "0.0.1" + ] + }, + "expected_output": [ + "0.0.1", + "0.0.9" + ] + }, + { + "description": "univers Debian treats \"0.0.9\" and \"0.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.0.9", + "0.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"0.1.0\" before \"0.9.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "0.9.0", + "0.1.0" + ] + }, + "expected_output": [ + "0.1.0", + "0.9.0" + ] + }, + { + "description": "univers Debian treats \"0.9.0\" and \"0.1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "0.9.0", + "0.1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"1.0.0\" before \"9.0.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "9.0.0", + "1.0.0" + ] + }, + "expected_output": [ + "1.0.0", + "9.0.0" + ] + }, + { + "description": "univers Debian treats \"9.0.0\" and \"1.0.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "9.0.0", + "1.0.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Debian orders \"2:0.0.44-1\" before \"2:0.0.44-nobin\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "deb", + "versions": [ + "2:0.0.44-nobin", + "2:0.0.44-1" + ] + }, + "expected_output": [ + "2:0.0.44-1", + "2:0.0.44-nobin" + ] + }, + { + "description": "univers Debian treats \"2:0.0.44-1\" and \"2:0.0.44-nobin\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "deb", + "versions": [ + "2:0.0.44-1", + "2:0.0.44-nobin" + ] + }, + "expected_output": false + } + ] +} diff --git a/testdata/local/tests/gentoo_univers_version_cmp_test.json b/testdata/local/tests/gentoo_univers_version_cmp_test.json new file mode 100644 index 0000000..621940c --- /dev/null +++ b/testdata/local/tests/gentoo_univers_version_cmp_test.json @@ -0,0 +1,531 @@ +{ + "$schema": "https://packageurl.org/schemas/vers-test.schema-0.2.json", + "tests": [ + { + "description": "univers Gentoo orders \"0.1\" before \"0.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "0.2", + "0.1" + ] + }, + "expected_output": [ + "0.1", + "0.2" + ] + }, + { + "description": "univers Gentoo treats \"0.1\" and \"0.2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "0.1", + "0.2" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"6\" before \"6a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "6a", + "6" + ] + }, + "expected_output": [ + "6", + "6a" + ] + }, + { + "description": "univers Gentoo treats \"6a\" and \"6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6a", + "6" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"6a\" before \"6a-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "6a-r1", + "6a" + ] + }, + "expected_output": [ + "6a", + "6a-r1" + ] + }, + { + "description": "univers Gentoo treats \"6a-r1\" and \"6a\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6a-r1", + "6a" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"6\" before \"6.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0", + "6" + ] + }, + "expected_output": [ + "6", + "6.0" + ] + }, + { + "description": "univers Gentoo treats \"6.0\" and \"6\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0", + "6" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"6.0b\" before \"6.0.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0.0", + "6.0b" + ] + }, + "expected_output": [ + "6.0b", + "6.0.0" + ] + }, + { + "description": "univers Gentoo treats \"6.0.0\" and \"6.0b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0.0", + "6.0b" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"6.0.0\" before \"6.02\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "6.02", + "6.0.0" + ] + }, + "expected_output": [ + "6.0.0", + "6.02" + ] + }, + { + "description": "univers Gentoo treats \"6.02\" and \"6.0.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.02", + "6.0.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"6.054\" before \"6.2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "6.2", + "6.054" + ] + }, + "expected_output": [ + "6.054", + "6.2" + ] + }, + { + "description": "univers Gentoo treats \"6.2\" and \"6.054\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.2", + "6.054" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"6.0_alpha\" before \"6.0_alpha0_p1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0_alpha0_p1", + "6.0_alpha" + ] + }, + "expected_output": [ + "6.0_alpha", + "6.0_alpha0_p1" + ] + }, + { + "description": "univers Gentoo treats \"6.0_alpha0_p1\" and \"6.0_alpha\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0_alpha0_p1", + "6.0_alpha" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo treats \"6.0_alpha\" and \"6.0_alpha0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0_alpha", + "6.0_alpha0" + ] + }, + "expected_output": true + }, + { + "description": "univers Gentoo orders \"6.09\" before \"6.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "6.1", + "6.09" + ] + }, + "expected_output": [ + "6.09", + "6.1" + ] + }, + { + "description": "univers Gentoo treats \"6.1\" and \"6.09\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.1", + "6.09" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"6.0\" before \"6.0.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0.1", + "6.0" + ] + }, + "expected_output": [ + "6.0", + "6.0.1" + ] + }, + { + "description": "univers Gentoo treats \"6.0.1\" and \"6.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0.1", + "6.0" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"12.2b\" before \"12.2.5\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "12.2.5", + "12.2b" + ] + }, + "expected_output": [ + "12.2b", + "12.2.5" + ] + }, + { + "description": "univers Gentoo treats \"12.2.5\" and \"12.2b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "12.2.5", + "12.2b" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"12.2b\" before \"12.2.5-r1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "12.2.5-r1", + "12.2b" + ] + }, + "expected_output": [ + "12.2b", + "12.2.5-r1" + ] + }, + { + "description": "univers Gentoo treats \"12.2.5-r1\" and \"12.2b\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "12.2.5-r1", + "12.2b" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo treats \"6.01.0\" and \"6.010.0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.01.0", + "6.010.0" + ] + }, + "expected_output": true + }, + { + "description": "univers Gentoo treats \"6.0.1\" and \"6.000.1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0.1", + "6.000.1" + ] + }, + "expected_output": true + }, + { + "description": "univers Gentoo treats \"6.01.0\" and \"6.01.0-r0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.01.0", + "6.01.0-r0" + ] + }, + "expected_output": true + }, + { + "description": "univers Gentoo treats \"6.01.0-r0\" and \"6.01.0-r00\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.01.0-r0", + "6.01.0-r00" + ] + }, + "expected_output": true + }, + { + "description": "univers Gentoo treats \"6.01.0-r1\" and \"6.01.0-r001\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.01.0-r1", + "6.01.0-r001" + ] + }, + "expected_output": true + }, + { + "description": "univers Gentoo orders \"1.60_p2009072801401\" before \"1.60_p2010081516093\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "1.60_p2010081516093", + "1.60_p2009072801401" + ] + }, + "expected_output": [ + "1.60_p2009072801401", + "1.60_p2010081516093" + ] + }, + { + "description": "univers Gentoo treats \"1.60_p2010081516093\" and \"1.60_p2009072801401\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "1.60_p2010081516093", + "1.60_p2009072801401" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"1.60_p20090728014017\" before \"1.60_p20100815160931\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "1.60_p20100815160931", + "1.60_p20090728014017" + ] + }, + "expected_output": [ + "1.60_p20090728014017", + "1.60_p20100815160931" + ] + }, + { + "description": "univers Gentoo treats \"1.60_p20100815160931\" and \"1.60_p20090728014017\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "1.60_p20100815160931", + "1.60_p20090728014017" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo orders \"1.60_p20090728014017-r1\" before \"1.60_p20100815160931\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "gentoo", + "versions": [ + "1.60_p20100815160931", + "1.60_p20090728014017-r1" + ] + }, + "expected_output": [ + "1.60_p20090728014017-r1", + "1.60_p20100815160931" + ] + }, + { + "description": "univers Gentoo treats \"1.60_p20100815160931\" and \"1.60_p20090728014017-r1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "1.60_p20100815160931", + "1.60_p20090728014017-r1" + ] + }, + "expected_output": false + }, + { + "description": "univers Gentoo treats \"6.0\" and \"6.0-r0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "gentoo", + "versions": [ + "6.0", + "6.0-r0" + ] + }, + "expected_output": true + } + ] +} diff --git a/testdata/local/tests/rpm_univers_version_cmp_test.json b/testdata/local/tests/rpm_univers_version_cmp_test.json new file mode 100644 index 0000000..b90772c --- /dev/null +++ b/testdata/local/tests/rpm_univers_version_cmp_test.json @@ -0,0 +1,1034 @@ +{ + "$schema": "https://packageurl.org/schemas/vers-test.schema-0.2.json", + "tests": [ + { + "description": "univers RPM orders \"1.0\" before \"2.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "2.0", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "2.0" + ] + }, + { + "description": "univers RPM treats \"1.0\" and \"2.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0", + "2.0" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"2.0\" before \"2.0.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "2.0.1", + "2.0" + ] + }, + "expected_output": [ + "2.0", + "2.0.1" + ] + }, + { + "description": "univers RPM treats \"2.0\" and \"2.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "2.0", + "2.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"2.0.1\" before \"2.0.1a\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "2.0.1a", + "2.0.1" + ] + }, + "expected_output": [ + "2.0.1", + "2.0.1a" + ] + }, + { + "description": "univers RPM treats \"2.0.1a\" and \"2.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "2.0.1a", + "2.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"5.5p1\" before \"5.5p2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "5.5p2", + "5.5p1" + ] + }, + "expected_output": [ + "5.5p1", + "5.5p2" + ] + }, + { + "description": "univers RPM treats \"5.5p1\" and \"5.5p2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "5.5p1", + "5.5p2" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"5.5p1\" before \"5.5p10\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "5.5p10", + "5.5p1" + ] + }, + "expected_output": [ + "5.5p1", + "5.5p10" + ] + }, + { + "description": "univers RPM treats \"5.5p1\" and \"5.5p10\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "5.5p1", + "5.5p10" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"10xyz\" before \"10.1xyz\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "10.1xyz", + "10xyz" + ] + }, + "expected_output": [ + "10xyz", + "10.1xyz" + ] + }, + { + "description": "univers RPM treats \"10xyz\" and \"10.1xyz\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "10xyz", + "10.1xyz" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"xyz10\" before \"xyz10.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "xyz10.1", + "xyz10" + ] + }, + "expected_output": [ + "xyz10", + "xyz10.1" + ] + }, + { + "description": "univers RPM treats \"xyz10\" and \"xyz10.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "xyz10", + "xyz10.1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"xyz.4\" before \"8\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "8", + "xyz.4" + ] + }, + "expected_output": [ + "xyz.4", + "8" + ] + }, + { + "description": "univers RPM treats \"xyz.4\" and \"8\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "xyz.4", + "8" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"xyz.4\" before \"2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "2", + "xyz.4" + ] + }, + "expected_output": [ + "xyz.4", + "2" + ] + }, + { + "description": "univers RPM treats \"xyz.4\" and \"2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "xyz.4", + "2" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"5.5p2\" before \"5.6p1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "5.6p1", + "5.5p2" + ] + }, + "expected_output": [ + "5.5p2", + "5.6p1" + ] + }, + { + "description": "univers RPM treats \"5.5p2\" and \"5.6p1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "5.5p2", + "5.6p1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"5.6p1\" before \"6.5p1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "6.5p1", + "5.6p1" + ] + }, + "expected_output": [ + "5.6p1", + "6.5p1" + ] + }, + { + "description": "univers RPM treats \"5.6p1\" and \"6.5p1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "5.6p1", + "6.5p1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"6.0\" before \"6.0.rc1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "6.0.rc1", + "6.0" + ] + }, + "expected_output": [ + "6.0", + "6.0.rc1" + ] + }, + { + "description": "univers RPM treats \"6.0.rc1\" and \"6.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "6.0.rc1", + "6.0" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"10a1\" before \"10b2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "10b2", + "10a1" + ] + }, + "expected_output": [ + "10a1", + "10b2" + ] + }, + { + "description": "univers RPM treats \"10b2\" and \"10a1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "10b2", + "10a1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"10a2\" before \"10b2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "10b2", + "10a2" + ] + }, + "expected_output": [ + "10a2", + "10b2" + ] + }, + { + "description": "univers RPM treats \"10a2\" and \"10b2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "10a2", + "10b2" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0a\" before \"1.0aa\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0aa", + "1.0a" + ] + }, + "expected_output": [ + "1.0a", + "1.0aa" + ] + }, + { + "description": "univers RPM treats \"1.0a\" and \"1.0aa\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0a", + "1.0aa" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM treats \"10.0001\" and \"10.1\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "10.0001", + "10.1" + ] + }, + "expected_output": true + }, + { + "description": "univers RPM orders \"10.0001\" before \"10.0039\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "10.0039", + "10.0001" + ] + }, + "expected_output": [ + "10.0001", + "10.0039" + ] + }, + { + "description": "univers RPM treats \"10.0001\" and \"10.0039\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "10.0001", + "10.0039" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"4.999.9\" before \"5.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "5.0", + "4.999.9" + ] + }, + "expected_output": [ + "4.999.9", + "5.0" + ] + }, + { + "description": "univers RPM treats \"4.999.9\" and \"5.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "4.999.9", + "5.0" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"20101121\" before \"20101122\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "20101122", + "20101121" + ] + }, + "expected_output": [ + "20101121", + "20101122" + ] + }, + { + "description": "univers RPM treats \"20101121\" and \"20101122\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "20101121", + "20101122" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM treats \"2.0\" and \"2_0\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "2.0", + "2_0" + ] + }, + "expected_output": true + }, + { + "description": "univers RPM treats \"a+\" and \"a_\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "a+", + "a_" + ] + }, + "expected_output": true + }, + { + "description": "univers RPM treats \"+a\" and \"_a\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "+a", + "_a" + ] + }, + "expected_output": true + }, + { + "description": "univers RPM treats \"_+\" and \"+_\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "_+", + "+_" + ] + }, + "expected_output": true + }, + { + "description": "univers RPM treats \"+\" and \"_\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "+", + "_" + ] + }, + "expected_output": true + }, + { + "description": "univers RPM orders \"1.0~rc1\" before \"1.0\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0", + "1.0~rc1" + ] + }, + "expected_output": [ + "1.0~rc1", + "1.0" + ] + }, + { + "description": "univers RPM treats \"1.0~rc1\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0~rc1", + "1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0~rc1\" before \"1.0~rc2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0~rc2", + "1.0~rc1" + ] + }, + "expected_output": [ + "1.0~rc1", + "1.0~rc2" + ] + }, + { + "description": "univers RPM treats \"1.0~rc1\" and \"1.0~rc2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0~rc1", + "1.0~rc2" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0~rc1~git123\" before \"1.0~rc1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0~rc1", + "1.0~rc1~git123" + ] + }, + "expected_output": [ + "1.0~rc1~git123", + "1.0~rc1" + ] + }, + { + "description": "univers RPM treats \"1.0~rc1~git123\" and \"1.0~rc1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0~rc1~git123", + "1.0~rc1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0\" before \"1.0^\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "1.0^" + ] + }, + { + "description": "univers RPM treats \"1.0^\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^", + "1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0\" before \"1.0^git1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^git1", + "1.0" + ] + }, + "expected_output": [ + "1.0", + "1.0^git1" + ] + }, + { + "description": "univers RPM treats \"1.0^git1\" and \"1.0\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^git1", + "1.0" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0^git1\" before \"1.0^git2\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^git2", + "1.0^git1" + ] + }, + "expected_output": [ + "1.0^git1", + "1.0^git2" + ] + }, + { + "description": "univers RPM treats \"1.0^git1\" and \"1.0^git2\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^git1", + "1.0^git2" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0^git1\" before \"1.01\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.01", + "1.0^git1" + ] + }, + "expected_output": [ + "1.0^git1", + "1.01" + ] + }, + { + "description": "univers RPM treats \"1.0^git1\" and \"1.01\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^git1", + "1.01" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0^20160101\" before \"1.0.1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0.1", + "1.0^20160101" + ] + }, + "expected_output": [ + "1.0^20160101", + "1.0.1" + ] + }, + { + "description": "univers RPM treats \"1.0^20160101\" and \"1.0.1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^20160101", + "1.0.1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0^20160101^git1\" before \"1.0^20160102\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^20160102", + "1.0^20160101^git1" + ] + }, + "expected_output": [ + "1.0^20160101^git1", + "1.0^20160102" + ] + }, + { + "description": "univers RPM treats \"1.0^20160102\" and \"1.0^20160101^git1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^20160102", + "1.0^20160101^git1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0~rc1\" before \"1.0~rc1^git1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0~rc1^git1", + "1.0~rc1" + ] + }, + "expected_output": [ + "1.0~rc1", + "1.0~rc1^git1" + ] + }, + { + "description": "univers RPM treats \"1.0~rc1^git1\" and \"1.0~rc1\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0~rc1^git1", + "1.0~rc1" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.0^git1~pre\" before \"1.0^git1\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^git1", + "1.0^git1~pre" + ] + }, + "expected_output": [ + "1.0^git1~pre", + "1.0^git1" + ] + }, + { + "description": "univers RPM treats \"1.0^git1\" and \"1.0^git1~pre\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.0^git1", + "1.0^git1~pre" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1b.fc17\" before \"1.fc17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1.fc17", + "1b.fc17" + ] + }, + "expected_output": [ + "1b.fc17", + "1.fc17" + ] + }, + { + "description": "univers RPM treats \"1b.fc17\" and \"1.fc17\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1b.fc17", + "1.fc17" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM orders \"1.fc17\" before \"1g.fc17\".", + "test_group": "recommended", + "test_type": "comparison", + "input": { + "input_type": "rpm", + "versions": [ + "1g.fc17", + "1.fc17" + ] + }, + "expected_output": [ + "1.fc17", + "1g.fc17" + ] + }, + { + "description": "univers RPM treats \"1g.fc17\" and \"1.fc17\" as different.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1g.fc17", + "1.fc17" + ] + }, + "expected_output": false + }, + { + "description": "univers RPM treats \"1.1.α\" and \"1.1.β\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.1.α", + "1.1.β" + ] + }, + "expected_output": true + }, + { + "description": "univers RPM treats \"1.1.αα\" and \"1.1.α\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.1.αα", + "1.1.α" + ] + }, + "expected_output": true + }, + { + "description": "univers RPM treats \"1.1.α\" and \"1.1.ββ\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.1.α", + "1.1.ββ" + ] + }, + "expected_output": true + }, + { + "description": "univers RPM treats \"1.1.ββ\" and \"1.1.αα\" as equal.", + "test_group": "recommended", + "test_type": "equality", + "input": { + "input_type": "rpm", + "versions": [ + "1.1.ββ", + "1.1.αα" + ] + }, + "expected_output": true + } + ] +} diff --git a/tools/diff-univers/main.go b/tools/diff-univers/main.go new file mode 100644 index 0000000..4a66abe --- /dev/null +++ b/tools/diff-univers/main.go @@ -0,0 +1,327 @@ +package main + +import ( + "bytes" + "encoding/json" + "errors" + "flag" + "fmt" + "io" + "os" + "os/exec" + "path/filepath" + "sort" + "strings" + + vers "github.com/git-pkgs/vers" +) + +const universScript = ` +import json +import sys + +from univers.version_range import RANGE_CLASS_BY_SCHEMES +from univers.version_range import VersionRange +from univers.versions import AlpineLinuxVersion +from univers.versions import SemverVersion + + +ALIASES = { + "alpine": "apk", + "debian": "deb", + "gentoo": "ebuild", + "go": "golang", + "rubygems": "gem", +} + + +def version_class(scheme): + scheme = ALIASES.get(scheme, scheme) + if scheme == "apk": + return AlpineLinuxVersion + if scheme == "semver": + return SemverVersion + range_class = RANGE_CLASS_BY_SCHEMES.get(scheme) + if range_class is None: + raise ValueError(f"univers does not support the {scheme!r} scheme") + return range_class.version_class + + +def compare(query): + cls = version_class(query["scheme"]) + left = cls(query["left"]) + right = cls(query["right"]) + return (left > right) - (left < right) + + +def contains(query): + value = VersionRange.from_string(query["vers"]) + version = value.version_class(query["version"]) + return version in value + + +results = [] +for query in json.load(sys.stdin): + result = {"id": query["id"]} + try: + if query["operation"] == "compare": + result["comparison"] = compare(query) + else: + result["contains"] = contains(query) + except Exception as error: + result["error"] = f"{type(error).__name__}: {error}" + results.append(result) + +json.dump(results, sys.stdout) +` + +type testFile struct { + Tests []testCase `json:"tests"` +} + +type testCase struct { + Description string `json:"description"` + TestType string `json:"test_type"` + Input json.RawMessage `json:"input"` +} + +type comparisonInput struct { + InputType string `json:"input_type"` + Versions []string `json:"versions"` +} + +type containmentInput struct { + VERS string `json:"vers"` + Version string `json:"version"` +} + +type query struct { + ID int `json:"id"` + Operation string `json:"operation"` + Scheme string `json:"scheme,omitempty"` + Left string `json:"left,omitempty"` + Right string `json:"right,omitempty"` + VERS string `json:"vers,omitempty"` + Version string `json:"version,omitempty"` + Source string `json:"-"` +} + +type referenceResult struct { + ID int `json:"id"` + Comparison int `json:"comparison"` + Contains bool `json:"contains"` + Error string `json:"error"` +} + +func main() { + fixtures := flag.String("fixtures", "testdata/local/tests/*_univers_*_test.json", "glob of conformance fixtures to compare") + python := flag.String("python", "python3", "Python executable with univers installed") + universPath := flag.String("univers", "", "optional package-url/univers checkout") + flag.Parse() + + queries, err := loadQueries(*fixtures) + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + if len(queries) == 0 { + fmt.Fprintln(os.Stderr, "no comparison or containment cases found") + os.Exit(1) + } + + results, err := runUnivers(*python, *universPath, queries) + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + + differences, err := compareResults(queries, results, os.Stdout) + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + if differences > 0 { + fmt.Fprintf(os.Stderr, "%d difference(s) found\n", differences) + os.Exit(1) + } + fmt.Printf("univers agrees with vers for %d cases\n", len(queries)) +} + +func loadQueries(pattern string) ([]query, error) { + filenames, err := filepath.Glob(pattern) + if err != nil { + return nil, fmt.Errorf("find fixtures: %w", err) + } + if len(filenames) == 0 { + return nil, fmt.Errorf("no fixtures match %q", pattern) + } + sort.Strings(filenames) + + queries := make([]query, 0) + seen := make(map[string]bool) + for _, filename := range filenames { + data, err := os.ReadFile(filename) + if err != nil { + return nil, fmt.Errorf("read %s: %w", filename, err) + } + var tf testFile + if err := json.Unmarshal(data, &tf); err != nil { + return nil, fmt.Errorf("parse %s: %w", filename, err) + } + for _, tc := range tf.Tests { + q, ok, err := queryForCase(filename, tc) + if err != nil { + return nil, err + } + if !ok { + continue + } + key := queryKey(q) + if seen[key] { + continue + } + seen[key] = true + q.ID = len(queries) + queries = append(queries, q) + } + } + return queries, nil +} + +func queryForCase(filename string, tc testCase) (query, bool, error) { + source := filename + ": " + tc.Description + switch tc.TestType { + case "comparison", "equality": + var input comparisonInput + if err := json.Unmarshal(tc.Input, &input); err != nil { + return query{}, false, fmt.Errorf("parse input for %s: %w", source, err) + } + if input.InputType == "" || len(input.Versions) != 2 { + return query{}, false, fmt.Errorf("invalid comparison input for %s", source) + } + return query{ + Operation: "compare", Scheme: input.InputType, + Left: input.Versions[0], Right: input.Versions[1], Source: source, + }, true, nil + case "containment": + var input containmentInput + if err := json.Unmarshal(tc.Input, &input); err != nil { + return query{}, false, fmt.Errorf("parse input for %s: %w", source, err) + } + if input.VERS == "" || input.Version == "" { + return query{}, false, fmt.Errorf("invalid containment input for %s", source) + } + return query{ + Operation: "contains", VERS: input.VERS, Version: input.Version, Source: source, + }, true, nil + default: + return query{}, false, nil + } +} + +func queryKey(q query) string { + return strings.Join([]string{q.Operation, q.Scheme, q.Left, q.Right, q.VERS, q.Version}, "\x00") +} + +func runUnivers(python, checkout string, queries []query) ([]referenceResult, error) { + input, err := json.Marshal(queries) + if err != nil { + return nil, fmt.Errorf("encode univers queries: %w", err) + } + + command := exec.Command(python, "-c", universScript) + command.Stdin = bytes.NewReader(input) + if checkout != "" { + sourcePath, err := filepath.Abs(filepath.Join(checkout, "src")) + if err != nil { + return nil, fmt.Errorf("resolve univers checkout: %w", err) + } + pythonPath := sourcePath + if existing := os.Getenv("PYTHONPATH"); existing != "" { + pythonPath += string(os.PathListSeparator) + existing + } + command.Env = append(os.Environ(), "PYTHONPATH="+pythonPath) + } + + var stderr bytes.Buffer + command.Stderr = &stderr + output, err := command.Output() + if err != nil { + message := strings.TrimSpace(stderr.String()) + if message == "" { + message = err.Error() + } + return nil, fmt.Errorf("run univers: %s", message) + } + + var results []referenceResult + if err := json.Unmarshal(output, &results); err != nil { + return nil, fmt.Errorf("decode univers results: %w", err) + } + return results, nil +} + +func compareResults(queries []query, results []referenceResult, output io.Writer) (int, error) { + if len(results) != len(queries) { + return 0, fmt.Errorf("univers returned %d results for %d queries", len(results), len(queries)) + } + + differences := 0 + for i, q := range queries { + result := results[i] + if result.ID != q.ID { + return 0, fmt.Errorf("univers result %d has query ID %d, want %d", i, result.ID, q.ID) + } + different, err := compareResult(q, result, output) + if err != nil { + return 0, err + } + if different { + differences++ + } + } + return differences, nil +} + +func compareResult(q query, result referenceResult, output io.Writer) (bool, error) { + if result.Error != "" { + if _, err := fmt.Fprintf(output, "%s\n univers error: %s\n", q.Source, result.Error); err != nil { + return false, fmt.Errorf("write difference: %w", err) + } + return true, nil + } + + switch q.Operation { + case "compare": + actual := vers.CompareWithScheme(q.Left, q.Right, q.Scheme) + if actual == result.Comparison { + return false, nil + } + if _, err := fmt.Fprintf(output, "%s\n vers: %d; univers: %d\n", q.Source, actual, result.Comparison); err != nil { + return false, fmt.Errorf("write difference: %w", err) + } + return true, nil + case "contains": + return compareContainment(q, result, output) + default: + return false, errors.New("unknown query operation " + q.Operation) + } +} + +func compareContainment(q query, result referenceResult, output io.Writer) (bool, error) { + rangeValue, err := vers.Parse(q.VERS) + if err != nil { + if _, writeErr := fmt.Fprintf(output, "%s\n vers error: %s\n", q.Source, err); writeErr != nil { + return false, fmt.Errorf("write difference: %w", writeErr) + } + return true, nil + } + actual := rangeValue.Contains(q.Version) + if actual == result.Contains { + return false, nil + } + if _, err := fmt.Fprintf(output, "%s\n vers: %t; univers: %t\n", q.Source, actual, result.Contains); err != nil { + return false, fmt.Errorf("write difference: %w", err) + } + return true, nil +} diff --git a/tools/diff-univers/main_test.go b/tools/diff-univers/main_test.go new file mode 100644 index 0000000..36a6161 --- /dev/null +++ b/tools/diff-univers/main_test.go @@ -0,0 +1,100 @@ +package main + +import ( + "bytes" + "os" + "path/filepath" + "reflect" + "testing" +) + +func TestLoadQueries(t *testing.T) { + directory := t.TempDir() + filename := filepath.Join(directory, "sample.json") + data := []byte(`{ + "tests": [ + { + "description": "orders versions", + "test_type": "comparison", + "input": {"input_type": "deb", "versions": ["2", "1"]} + }, + { + "description": "the same pair is unequal", + "test_type": "equality", + "input": {"input_type": "deb", "versions": ["2", "1"]} + }, + { + "description": "contains a version", + "test_type": "containment", + "input": {"vers": "vers:conan/>=1|<2", "version": "1.5"} + }, + { + "description": "ignored native parse case", + "test_type": "native_parse", + "input": {} + } + ] +}`) + if err := os.WriteFile(filename, data, 0o600); err != nil { + t.Fatal(err) + } + + got, err := loadQueries(filepath.Join(directory, "*.json")) + if err != nil { + t.Fatal(err) + } + want := []query{ + { + ID: 0, Operation: "compare", Scheme: "deb", Left: "2", Right: "1", + Source: filename + ": orders versions", + }, + { + ID: 1, Operation: "contains", VERS: "vers:conan/>=1|<2", Version: "1.5", + Source: filename + ": contains a version", + }, + } + if !reflect.DeepEqual(got, want) { + t.Errorf("queries = %#v, want %#v", got, want) + } +} + +func TestQueryForCaseRejectsInvalidComparison(t *testing.T) { + _, _, err := queryForCase("fixture.json", testCase{ + Description: "bad input", + TestType: "comparison", + Input: []byte(`{"input_type":"rpm","versions":["1"]}`), + }) + if err == nil { + t.Fatal("expected an error") + } +} + +func TestQueryKeyIncludesOperationAndInputs(t *testing.T) { + first := query{Operation: "compare", Scheme: "deb", Left: "1", Right: "2"} + second := query{Operation: "compare", Scheme: "deb", Left: "1", Right: "3"} + if queryKey(first) == queryKey(second) { + t.Fatal("different queries have the same key") + } +} + +func TestCompareResultsReportsDifferences(t *testing.T) { + queries := []query{ + {ID: 0, Operation: "compare", Scheme: "deb", Left: "1", Right: "2", Source: "comparison"}, + {ID: 1, Operation: "contains", VERS: "vers:conan/>=1|<2", Version: "1.5", Source: "containment"}, + } + results := []referenceResult{ + {ID: 0, Comparison: 1}, + {ID: 1, Contains: true}, + } + var output bytes.Buffer + differences, err := compareResults(queries, results, &output) + if err != nil { + t.Fatal(err) + } + if differences != 1 { + t.Fatalf("differences = %d, want 1", differences) + } + if output.String() != "comparison\n vers: -1; univers: 1\n" { + t.Errorf("output = %q", output.String()) + } +} diff --git a/tools/harvest/main.go b/tools/harvest/main.go index 1fe15aa..bb3f406 100644 --- a/tools/harvest/main.go +++ b/tools/harvest/main.go @@ -39,6 +39,7 @@ type sourceSpec struct { generatedRangeOutputFile string referenceRuntimes []string evaluateRanges rangeEvaluator + generateAdditional additionalGenerator } type comparison struct { @@ -61,6 +62,8 @@ type containmentQuery struct { type rangeEvaluator func(string, []containmentQuery) ([]bool, error) +type additionalGenerator func(map[string]string, string) ([]string, error) + type testFile struct { Schema string `json:"$schema"` Tests []testCase `json:"tests"` @@ -198,6 +201,31 @@ var sources = []sourceSpec{ localPath: "golang/mod", sourceFiles: []string{"semver/semver_test.go"}, outputFile: "go_version_cmp_test.json", extract: extractGo, }, + { + name: "univers", + repository: "https://github.com/package-url/univers.git", + commit: "f365e4ee6eea8ebf1ad9219ccf4c4d523e822fb2", + license: "Apache-2.0 AND BSD-3-Clause AND GPL-2.0-only AND MIT", + localPath: "univers", + sourceFiles: []string{ + "tests/test_debian_version.py", + "tests/test_debian_version.py.ABOUT", + "tests/data/rpmvercmp.at", + "tests/data/rpmvercmp.at.ABOUT", + "tests/test_gentoo_pkgcore.py", + "tests/test_gentoo_pkgcore.py.ABOUT", + "tests/data/alpine_test.txt", + "tests/data/alpine_test.txt.ABOUT", + "tests/test_pacman_vercmp.py", + "tests/test_pacman_vercmp.py.ABOUT", + "tests/test_conan_version_comparison.py", + "tests/test_conan_version_comparison.py.ABOUT", + "tests/test_conan_version_range.py", + "tests/test_conan_version_range.py.ABOUT", + "tests/data/npm_advisory.json", + }, + generateAdditional: generateUnivers, + }, } func main() { @@ -307,6 +335,13 @@ func harvestSource(source sourceSpec, files map[string]string, checkout, testsDi } generatedFiles = append(generatedFiles, generatedFilename) } + if source.generateAdditional != nil { + additional, err := source.generateAdditional(files, filepath.Dir(testsDir)) + if err != nil { + return nil, fmt.Errorf("generate %s fixtures: %w", source.name, err) + } + generatedFiles = append(generatedFiles, additional...) + } return generatedFiles, nil } diff --git a/tools/harvest/univers.go b/tools/harvest/univers.go new file mode 100644 index 0000000..5afb10f --- /dev/null +++ b/tools/harvest/univers.go @@ -0,0 +1,379 @@ +package main + +import ( + "fmt" + "os" + "path/filepath" + "regexp" + "strconv" + "strings" +) + +const ( + npmAdvisorySource = "tests/data/npm_advisory.json" + universAdditionalOutputs = 2 + alpineComparisonFields = 3 +) + +func generateUnivers(files map[string]string, outputRoot string) ([]string, error) { + testsDir := filepath.Join(outputRoot, "tests") + comparisonFixtures := []struct { + filename string + name string + scheme string + extract func(map[string]string) ([]comparison, error) + }{ + {"deb_univers_version_cmp_test.json", "univers Debian", "deb", extractUniversDebian}, + {"rpm_univers_version_cmp_test.json", "univers RPM", "rpm", extractUniversRPM}, + {"gentoo_univers_version_cmp_test.json", "univers Gentoo", "gentoo", extractUniversGentoo}, + {"apk_univers_version_cmp_test.json", "univers Alpine", "apk", extractUniversAlpine}, + {"alpm_univers_version_cmp_test.json", "univers Pacman", "alpm", extractUniversPacman}, + {"conan_univers_version_cmp_test.json", "univers Conan", "conan", extractUniversConan}, + } + generated := make([]string, 0, len(comparisonFixtures)+universAdditionalOutputs) + for _, fixture := range comparisonFixtures { + comparisons, err := fixture.extract(files) + if err != nil { + return nil, err + } + source := sourceSpec{name: fixture.name, scheme: fixture.scheme} + if err := writeJSON(filepath.Join(testsDir, fixture.filename), buildTestFile(source, comparisons)); err != nil { + return nil, err + } + generated = append(generated, filepath.ToSlash(filepath.Join("tests", fixture.filename))) + } + + assertions, err := extractUniversConanRanges(files) + if err != nil { + return nil, err + } + conanSource := sourceSpec{name: "univers Conan", scheme: "conan"} + conanFile, err := buildRangeTestFile(conanSource, assertions) + if err != nil { + return nil, err + } + const conanFilename = "conan_univers_range_test.json" + if err := writeJSON(filepath.Join(testsDir, conanFilename), conanFile); err != nil { + return nil, err + } + generated = append(generated, filepath.ToSlash(filepath.Join("tests", conanFilename))) + + dataDirectory := filepath.Join(outputRoot, "data") + if err := os.MkdirAll(dataDirectory, directoryMode); err != nil { + return nil, err + } + advisory := files[npmAdvisorySource] + if !strings.HasSuffix(advisory, "\n") { + advisory += "\n" + } + const advisoryFilename = "npm_advisory.json" + if err := os.WriteFile(filepath.Join(dataDirectory, advisoryFilename), []byte(advisory), fileMode); err != nil { + return nil, err + } + generated = append(generated, filepath.ToSlash(filepath.Join("data", advisoryFilename))) + + return generated, nil +} + +func extractUniversDebian(files map[string]string) ([]comparison, error) { + content := files["tests/test_debian_version.py"] + pattern := regexp.MustCompile(`compare_versions\(\s*"([^"]*)",\s*"([^"]*)"\s*\)\s*==\s*(-?1|0)`) + items := make([]comparison, 0) + for _, match := range pattern.FindAllStringSubmatch(content, -1) { + result, _ := strconv.Atoi(match[3]) + items = append(items, comparison{left: match[1], right: match[2], result: result}) + } + return requireComparisons(items) +} + +func extractUniversRPM(files map[string]string) ([]comparison, error) { + content := files["tests/data/rpmvercmp.at"] + pattern := regexp.MustCompile(`(?m)^\s*(?:dnl\s+)?RPMVERCMP\(([^,]*),\s*([^,]*),\s*(-?1|0)\)`) + items := make([]comparison, 0) + for _, match := range pattern.FindAllStringSubmatch(content, -1) { + result, _ := strconv.Atoi(match[3]) + items = append(items, comparison{ + left: strings.TrimSpace(match[1]), right: strings.TrimSpace(match[2]), result: result, + }) + } + return requireComparisons(items) +} + +func extractUniversGentoo(files map[string]string) ([]comparison, error) { + content := files["tests/test_gentoo_pkgcore.py"] + pattern := regexp.MustCompile(`assert\s+(older|newer|equal)\(f?"([^"{}]+)",\s*f?"([^"{}]+)"\)`) + items := make([]comparison, 0) + for _, match := range pattern.FindAllStringSubmatch(content, -1) { + result := 0 + switch match[1] { + case "older": + result = -1 + case "newer": + result = 1 + } + items = append(items, comparison{left: match[2], right: match[3], result: result}) + } + notEqual := regexp.MustCompile(`assert\s+not\s+equal\(f?"([^"{}]+)",\s*f?"([^"{}]+)"\)`) + for _, match := range notEqual.FindAllStringSubmatch(content, -1) { + items = append(items, comparison{left: match[1], right: match[2], differentOnly: true}) + } + return requireComparisons(items) +} + +func extractUniversAlpine(files map[string]string) ([]comparison, error) { + content := files["tests/data/alpine_test.txt"] + items := make([]comparison, 0) + for lineNumber, line := range strings.Split(content, "\n") { + fields := strings.Fields(line) + if len(fields) == 0 { + continue + } + if len(fields) != alpineComparisonFields { + return nil, fmt.Errorf("parse Alpine comparison line %d: %q", lineNumber+1, line) + } + result, ok := strictOperatorResult(fields[1]) + if !ok { + return nil, fmt.Errorf("parse Alpine comparison operator %q", fields[1]) + } + items = append(items, comparison{left: fields[0], right: fields[2], result: result}) + } + return requireComparisons(items) +} + +func extractUniversPacman(files map[string]string) ([]comparison, error) { + content := files["tests/test_pacman_vercmp.py"] + pattern := regexp.MustCompile(`(?m)^\s*assert\s+ArchLinuxVersion\("([^"]+)"\)\s*(==|<|>)\s*ArchLinuxVersion\("([^"]+)"\)`) + items := make([]comparison, 0) + for _, match := range pattern.FindAllStringSubmatch(content, -1) { + result, _ := strictOperatorResult(match[2]) + items = append(items, comparison{left: match[1], right: match[3], result: result}) + } + return requireComparisons(items) +} + +func extractUniversConan(files map[string]string) ([]comparison, error) { + content := files["tests/test_conan_version_comparison.py"] + lessThan, err := pythonAssignedList(content, "v") + if err != nil { + return nil, err + } + equal, err := pythonAssignedList(content, "e") + if err != nil { + return nil, err + } + pair := regexp.MustCompile(`\(\s*"([^"]+)"\s*,\s*"([^"]+)"\s*\)`) + items := make([]comparison, 0) + for _, match := range pair.FindAllStringSubmatch(lessThan, -1) { + items = append(items, comparison{left: match[1], right: match[2], result: -1}) + } + for _, match := range pair.FindAllStringSubmatch(equal, -1) { + items = append(items, comparison{left: match[1], right: match[2]}) + } + return requireComparisons(items) +} + +func extractUniversConanRanges(files map[string]string) ([]nativeRangeAssertion, error) { + content := files["tests/test_conan_version_range.py"] + list, err := pythonAssignedList(content, "values") + if err != nil { + return nil, err + } + records, err := splitPythonList(list) + if err != nil { + return nil, err + } + assertions := make([]nativeRangeAssertion, 0) + for _, record := range records { + fields, splitErr := splitPythonList(record) + if splitErr != nil || len(fields) != 4 { + return nil, fmt.Errorf("parse Conan range record %q", record) + } + nativeRange, stringErr := pythonString(fields[0]) + if stringErr != nil { + return nil, stringErr + } + // Conan's empty range has implicit stable-only behavior, and the + // include_prerelease option is configuration rather than range syntax. + if nativeRange == "" || strings.Contains(nativeRange, "include_prerelease=") { + continue + } + for _, group := range []struct { + field string + contains bool + }{{fields[2], true}, {fields[3], false}} { + for _, match := range quotedValue.FindAllStringSubmatch(group.field, -1) { + assertions = append(assertions, nativeRangeAssertion{ + nativeRange: nativeRange, version: match[1], contains: group.contains, + }) + } + } + } + return requireRangeAssertions(assertions) +} + +func pythonAssignedList(content, name string) (string, error) { + pattern := regexp.MustCompile(`(?m)^` + regexp.QuoteMeta(name) + `\s*=\s*\[`) + location := pattern.FindStringIndex(content) + if location == nil { + return "", fmt.Errorf("python list %q not found", name) + } + start := location[1] - 1 + end, err := matchingPythonBracket(content, start) + if err != nil { + return "", fmt.Errorf("parse Python list %q: %w", name, err) + } + return content[start : end+1], nil +} + +func matchingPythonBracket(content string, start int) (int, error) { + depth := 0 + var quote byte + escaped := false + comment := false + for index := start; index < len(content); index++ { + character := content[index] + if comment { + if character == '\n' { + comment = false + } + continue + } + if quote != 0 { + switch { + case escaped: + escaped = false + case character == '\\': + escaped = true + case character == quote: + quote = 0 + } + continue + } + switch character { + case '\'', '"': + quote = character + case '#': + comment = true + case '[', '(', '{': + depth++ + case ']', ')', '}': + depth-- + if depth == 0 { + return index, nil + } + } + } + return 0, fmt.Errorf("unclosed bracket at offset %d", start) +} + +func splitPythonList(value string) ([]string, error) { + value = strings.TrimSpace(value) + if len(value) < 2 || value[0] != '[' || value[len(value)-1] != ']' { + return nil, fmt.Errorf("not a Python list: %q", value) + } + content := stripPythonComments(value[1 : len(value)-1]) + items := make([]string, 0) + start := 0 + depth := 0 + var quote byte + escaped := false + comment := false + for index := 0; index < len(content); index++ { + character := content[index] + if comment { + if character == '\n' { + comment = false + } + continue + } + if quote != 0 { + switch { + case escaped: + escaped = false + case character == '\\': + escaped = true + case character == quote: + quote = 0 + } + continue + } + switch character { + case '\'', '"': + quote = character + case '#': + comment = true + case '[', '(', '{': + depth++ + case ']', ')', '}': + depth-- + case ',': + if depth == 0 { + if item := strings.TrimSpace(content[start:index]); item != "" { + items = append(items, item) + } + start = index + 1 + } + } + } + if quote != 0 || depth != 0 { + return nil, fmt.Errorf("unbalanced Python list: %q", value) + } + if item := strings.TrimSpace(content[start:]); item != "" { + items = append(items, item) + } + return items, nil +} + +func stripPythonComments(content string) string { + var result strings.Builder + result.Grow(len(content)) + var quote byte + escaped := false + comment := false + for index := 0; index < len(content); index++ { + character := content[index] + if comment { + if character == '\n' { + comment = false + result.WriteByte(character) + } + continue + } + if quote != 0 { + result.WriteByte(character) + switch { + case escaped: + escaped = false + case character == '\\': + escaped = true + case character == quote: + quote = 0 + } + continue + } + switch character { + case '\'', '"': + quote = character + result.WriteByte(character) + case '#': + comment = true + default: + result.WriteByte(character) + } + } + return result.String() +} + +func pythonString(value string) (string, error) { + value = strings.TrimSpace(value) + if len(value) < 2 || value[0] != value[len(value)-1] || value[0] != '"' && value[0] != '\'' { + return "", fmt.Errorf("not a Python string: %q", value) + } + if value[0] == '"' { + return strconv.Unquote(value) + } + inner := value[1 : len(value)-1] + inner = strings.ReplaceAll(inner, `\\`, `\`) + inner = strings.ReplaceAll(inner, `\'`, `'`) + return inner, nil +} diff --git a/tools/harvest/univers_test.go b/tools/harvest/univers_test.go new file mode 100644 index 0000000..d046ab9 --- /dev/null +++ b/tools/harvest/univers_test.go @@ -0,0 +1,129 @@ +package main + +import ( + "reflect" + "testing" +) + +func TestUniversComparisonExtractors(t *testing.T) { + tests := []struct { + name string + extract func(map[string]string) ([]comparison, error) + files map[string]string + want []comparison + }{ + { + name: "debian", extract: extractUniversDebian, + files: map[string]string{"tests/test_debian_version.py": ` +assert compare_versions("1.0", "1.0-0") == 0 +assert compare_versions("1.0", "2.0") == -1 +`}, + want: []comparison{{left: "1.0", right: "1.0-0"}, {left: "1.0", right: "2.0", result: -1}}, + }, + { + name: "rpm", extract: extractUniversRPM, + files: map[string]string{"tests/data/rpmvercmp.at": ` +RPMVERCMP(1.0, 2.0, -1) +dnl RPMVERCMP(1a, 1b, -1) +`}, + want: []comparison{{left: "1.0", right: "2.0", result: -1}, {left: "1a", right: "1b", result: -1}}, + }, + { + name: "gentoo", extract: extractUniversGentoo, + files: map[string]string{"tests/test_gentoo_pkgcore.py": ` +assert older("1_alpha", "1") +assert newer("2", "1") +assert equal("1-r0", "1") +assert not equal("1_p1", "1") +`}, + want: []comparison{ + {left: "1_alpha", right: "1", result: -1}, + {left: "2", right: "1", result: 1}, + {left: "1-r0", right: "1"}, + {left: "1_p1", right: "1", differentOnly: true}, + }, + }, + { + name: "alpine", extract: extractUniversAlpine, + files: map[string]string{"tests/data/alpine_test.txt": "1.0 < 2.0\n2.0 = 2.0\n"}, + want: []comparison{{left: "1.0", right: "2.0", result: -1}, {left: "2.0", right: "2.0"}}, + }, + { + name: "pacman", extract: extractUniversPacman, + files: map[string]string{"tests/test_pacman_vercmp.py": ` +assert ArchLinuxVersion("1.0") < ArchLinuxVersion("2.0") +assert ArchLinuxVersion("1.0") == ArchLinuxVersion("1.0-1") +# assert ArchLinuxVersion("2___a") == ArchLinuxVersion("2_a") +`}, + want: []comparison{{left: "1.0", right: "2.0", result: -1}, {left: "1.0", right: "1.0-1"}}, + }, + { + name: "conan", extract: extractUniversConan, + files: map[string]string{"tests/test_conan_version_comparison.py": ` +v = [ + # Ordered pairs. + ("1", "2"), +] +e = [ + ("1", "1.0"), +] +`}, + want: []comparison{{left: "1", right: "2", result: -1}, {left: "1", right: "1.0"}}, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + got, err := test.extract(test.files) + if err != nil { + t.Fatal(err) + } + if !reflect.DeepEqual(got, test.want) { + t.Errorf("comparisons = %#v, want %#v", got, test.want) + } + }) + } +} + +func TestExtractUniversConanRanges(t *testing.T) { + files := map[string]string{"tests/test_conan_version_range.py": ` +values = [ + ["", [], ["1.0"], ["1.0-pre"]], + ["*, include_prerelease=True", [], ["1.0-pre"], []], + # A supported range spread over several lines. + [ + "^1.2", + [[[]]], + ["1.2.1", "1.9"], + ["2.0"], + ], +] +`} + got, err := extractUniversConanRanges(files) + if err != nil { + t.Fatal(err) + } + want := []nativeRangeAssertion{ + {nativeRange: "^1.2", version: "1.2.1", contains: true}, + {nativeRange: "^1.2", version: "1.9", contains: true}, + {nativeRange: "^1.2", version: "2.0", contains: false}, + } + if !reflect.DeepEqual(got, want) { + t.Errorf("assertions = %#v, want %#v", got, want) + } +} + +func TestSplitPythonListHandlesCommentsAndEmptyStrings(t *testing.T) { + got, err := splitPythonList(`[ + # first item + ["", ["1"]], + ["two", []], + ]`) + if err != nil { + t.Fatal(err) + } + want := []string{`["", ["1"]]`, `["two", []]`} + if !reflect.DeepEqual(got, want) { + t.Errorf("items = %#v, want %#v", got, want) + } +}