# Test vector from:
# https://github.com/unascribed/FlexVer/blob/704e12759b6e59220ff888f8bf2ec15b8f8fd969/test/test_vectors.txt
#
# This test file is formatted as "<lefthand> <operator> <righthand>", seperated by the space character
# Implementations should ignore lines starting with "#" and lines that have a length of 0

# Basic numeric ordering (lexical string sort fails these)
10 > 2
100 > 10

# Trivial common numerics
1.0 < 1.1
1.0 < 1.0.1
1.1 > 1.0.1

# SemVer compatibility
1.5 > 1.5-pre1
1.5 = 1.5+foobar

# SemVer incompatibility
1.5 < 1.5-2
1.5-pre10 > 1.5-pre2

# Empty strings
 = 
1 > 
 < 1

# Check boundary between textual and prerelease
a-a < a

# Check boundary between textual and appendix
a+a = a

# Dash is included in prerelease comparison (if stripped it will be a smaller component)
# Note that a-a < a=a regardless since the prerelease splits the component creating a smaller first component; 0 is added to force splitting regardless
a0-a < a0=a

# Pre-releases must contain only non-digit
1.16.5-10 > 1.16.5

# Pre-releases can have multiple dashes (should not be split)
# Reasoning for test data: "p-a!" > "p-a-" (correct); "p-a!" < "p-a t-" (what happens if every dash creates a new component)
-a- > -a!

# Misc
b1.7.3 > a1.2.6
b1.2.6 > a1.7.3
a1.1.2 < a1.1.2_01
1.16.5-0.00.5 > 1.14.2-1.3.7
1.0.0 < 1.0.0_01
1.0.1 > 1.0.0_01
1.0.0_01 < 1.0.1
0.17.1-beta.1 < 0.17.1
0.17.1-beta.1 < 0.17.1-beta.2
1.4.5_01 = 1.4.5_01+fabric-1.17
1.4.5_01 = 1.4.5_01+fabric-1.17+ohgod
14w16a < 18w40b
18w40a < 18w40b
1.4.5_01+fabric-1.17 < 18w40b
13w02a < c0.3.0_01
0.6.0-1.18.x < 0.9.beta-1.18.x

