usecrate::util::*; use semver::{BuildMetadata, Prerelease, Version};
#[test] fn test_parse() { let err = version_err("");
assert_to_string(
err, "unexpected end of input while parsing major version number",
);
let err = version_err(" ");
assert_to_string(
err, "unexpected character ' ' while parsing major version number",
);
let err = version_err("1");
assert_to_string(
err, "unexpected end of input while parsing major version number",
);
let err = version_err("1.2");
assert_to_string(
err, "unexpected end of input while parsing minor version number",
);
let err = version_err("1.2.3-");
assert_to_string(err, "empty identifier segment in pre-release identifier");
let err = version_err("a.b.c");
assert_to_string(
err, "unexpected character 'a' while parsing major version number",
);
let err = version_err("1.2.3 abc");
assert_to_string(err, "unexpected character ' ' after patch version number");
let err = version_err("1.2.3-01");
assert_to_string(err, "invalid leading zero in pre-release identifier");
let parsed = version("1.2.3"); let expected = Version::new(1, 2, 3);
assert_eq!(parsed, expected); let expected = Version {
major: 1,
minor: 2,
patch: 3,
pre: Prerelease::EMPTY,
build: BuildMetadata::EMPTY,
};
assert_eq!(parsed, expected);
let parsed = version("1.2.3-alpha1"); let expected = Version {
major: 1,
minor: 2,
patch: 3,
pre: prerelease("alpha1"),
build: BuildMetadata::EMPTY,
};
assert_eq!(parsed, expected);
let parsed = version("1.2.3+build5"); let expected = Version {
major: 1,
minor: 2,
patch: 3,
pre: Prerelease::EMPTY,
build: build_metadata("build5"),
};
assert_eq!(parsed, expected);
let parsed = version("1.2.3+5build"); let expected = Version {
major: 1,
minor: 2,
patch: 3,
pre: Prerelease::EMPTY,
build: build_metadata("5build"),
};
assert_eq!(parsed, expected);
let parsed = version("1.2.3-alpha1+build5"); let expected = Version {
major: 1,
minor: 2,
patch: 3,
pre: prerelease("alpha1"),
build: build_metadata("build5"),
};
assert_eq!(parsed, expected);
let parsed = version("1.2.3-1.alpha1.9+build5.7.3aedf"); let expected = Version {
major: 1,
minor: 2,
patch: 3,
pre: prerelease("1.alpha1.9"),
build: build_metadata("build5.7.3aedf"),
};
assert_eq!(parsed, expected);
let parsed = version("1.2.3-0a.alpha1.9+05build.7.3aedf"); let expected = Version {
major: 1,
minor: 2,
patch: 3,
pre: prerelease("0a.alpha1.9"),
build: build_metadata("05build.7.3aedf"),
};
assert_eq!(parsed, expected);
let parsed = version("0.4.0-beta.1+0851523"); let expected = Version {
major: 0,
minor: 4,
patch: 0,
pre: prerelease("beta.1"),
build: build_metadata("0851523"),
};
assert_eq!(parsed, expected);
// for https://nodejs.org/dist/index.json, where some older npm versions are "1.1.0-beta-10" let parsed = version("1.1.0-beta-10"); let expected = Version {
major: 1,
minor: 1,
patch: 0,
pre: prerelease("beta-10"),
build: BuildMetadata::EMPTY,
};
assert_eq!(parsed, expected);
}
#[test] fn test_spec_order() { let vs = [ "1.0.0-alpha", "1.0.0-alpha.1", "1.0.0-alpha.beta", "1.0.0-beta", "1.0.0-beta.2", "1.0.0-beta.11", "1.0.0-rc.1", "1.0.0",
]; letmut i = 1; while i < vs.len() { let a = version(vs[i - 1]); let b = version(vs[i]);
assert!(a < b, "nope {:?} < {:?}", a, b);
i += 1;
}
}
#[test] fn test_align() { let version = version("1.2.3-rc1");
assert_eq!("1.2.3-rc1 ", format!("{:20}", version));
assert_eq!("*****1.2.3-rc1******", format!("{:*^20}", version));
assert_eq!(" 1.2.3-rc1", format!("{:>20}", version));
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-19)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.