load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
load("//internal/bzlmod:semver.bzl", "semver")

_SORTED_TEST_VERSIONS = [
    "0.1-a",
    "0.1",
    "1.0.0-0.3.7",
    "1.0.0-alpha",
    "1.0.0-alpha+001",
    "1.0.0-alpha.1",
    "1.0.0-alpha.beta",
    "1.0.0-beta+exp.sha.5114f85",
    "1.0.0-beta",
    "1.0.0-beta.2",
    "1.0.0-beta.11",
    "1.0.0-rc.1",
    "1.0.0-x.7.z.92",
    "1.0.0-x-y-z.--",
    "1.0.0+21AF26D3----117B344092BD",
    "1.0.0+20130313144700",
    "1.0.0",
    "2.0.0",
    "2.1.0",
    "2.1.1-0",
    "2.1.1",
    "2.1.1.0",
    "2.1.1.1-a",
    "2.1.1.1",
    "2.1.1.a",
    "2.1.2",
    "3",
    "a",
]

_SCRAMBLED_TEST_VERSIONS = {
    "a": True,
    "3": True,
    "2.1.2": False,
    "2.1.1.a": True,
    "2.1.1.1": True,
    "2.1.1.1-a": True,
    "2.1.1.0": True,
    "2.1.1": False,
    "2.1.1-0": False,
    "2.1.0": False,
    "2.0.0": False,
    "1.0.0+21AF26D3----117B344092BD": False,
    "1.0.0+20130313144700": False,
    "1.0.0": False,
    "1.0.0-x.7.z.92": False,
    "1.0.0-x-y-z.--": False,
    "1.0.0-rc.1": False,
    "1.0.0-beta.11": False,
    "1.0.0-beta.2": False,
    "1.0.0-beta+exp.sha.5114f85": False,
    "1.0.0-beta": False,
    "1.0.0-alpha.beta": False,
    "1.0.0-alpha.1": False,
    "1.0.0-alpha": False,
    "1.0.0-alpha+001": False,
    "1.0.0-0.3.7": False,
    "0.1-a": True,
    "0.1": True,
}

def _semver_test_impl(ctx):
    env = unittest.begin(ctx)
    asserts.equals(
        env,
        _SORTED_TEST_VERSIONS,
        sorted(
            _SCRAMBLED_TEST_VERSIONS.keys(),
            key = lambda x: semver.to_comparable(x, relaxed = _SCRAMBLED_TEST_VERSIONS[x]),
        ),
    )
    return unittest.end(env)

semver_test = unittest.make(_semver_test_impl)

def semver_test_suite(name):
    unittest.suite(
        name,
        semver_test,
    )
