/
nv-lang
/
nova
Обзор
Документация
Войти
/
nv-lang
/
nova
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
std/src/data/semver_range_test.nv
60 строк
2 KB
Evgeniy Golovin
fix(std/data): to_versionreq -> to_version_req (§1а naming), close drift note
30 июл 2026, 20:35
30 июл 2026, 20:35
526cde9
Код
Авторство
О чём код?
// SPDX-License-Identifier: MIT OR Apache-2.0 // std/data/semver_range_test.nv — публичный контракт VersionReq: // parse (exact/caret/tilde/comparator/AND/OR/wildcard) + matches. module data.semver_range_test import std.data.semver import std.data.semver_range.{VersionReq} test "exact: 1.2.3 matches только 1.2.3" { ro req = "1.2.3".to_version_req()!! assert(req.matches("1.2.3".to_version()!!)) assert(!req.matches("1.2.4".to_version()!!)) assert(!req.matches("1.2.2".to_version()!!)) } test "caret ^1.2.3 = >=1.2.3 <2.0.0" { ro req = "^1.2.3".to_version_req()!! assert(req.matches("1.2.3".to_version()!!)) assert(req.matches("1.2.4".to_version()!!)) assert(req.matches("1.5.0".to_version()!!)) assert(req.matches("1.99.99".to_version()!!)) assert(!req.matches("2.0.0".to_version()!!)) assert(!req.matches("1.2.2".to_version()!!)) } test "tilde ~1.2.3 = >=1.2.3 <1.3.0" { ro req = "~1.2.3".to_version_req()!! assert(req.matches("1.2.3".to_version()!!)) assert(req.matches("1.2.99".to_version()!!)) assert(!req.matches("1.3.0".to_version()!!)) assert(!req.matches("1.2.2".to_version()!!)) } test ">=1.0.0 — нижняя граница" { ro req = ">=1.0.0".to_version_req()!! assert(req.matches("1.0.0".to_version()!!)) assert(req.matches("99.0.0".to_version()!!)) assert(!req.matches("0.9.9".to_version()!!)) } test "AND: >1.0.0 <2.0.0" { ro req = ">1.0.0 <2.0.0".to_version_req()!! assert(req.matches("1.5.0".to_version()!!)) assert(!req.matches("1.0.0".to_version()!!)) // строгое > assert(!req.matches("2.0.0".to_version()!!)) } test "OR: 1.0.0 || 2.0.0" { ro req = "1.0.0 || 2.0.0".to_version_req()!! assert(req.matches("1.0.0".to_version()!!)) assert(req.matches("2.0.0".to_version()!!)) assert(!req.matches("1.5.0".to_version()!!)) } test "wildcard *: matches anything" { ro req = "*".to_version_req()!! assert(req.matches("0.0.1".to_version()!!)) assert(req.matches("99.99.99".to_version()!!)) }