Test and fix subcrates with --no-default-features
- The CI script now tests them all with --no-default-features. - bigint: testing needs rand even when the main feature is disabled. - rational: gate `FromPrimitive for Ratio<BigInt>` on having bigint.
This commit is contained in:
parent
7bf9a6ccf2
commit
8b9cdaada2
|
@ -31,5 +31,8 @@ version = "0.3.19"
|
||||||
optional = true
|
optional = true
|
||||||
version = ">= 0.7.0, < 0.9.0"
|
version = ">= 0.7.0, < 0.9.0"
|
||||||
|
|
||||||
|
[dev-dependencies.rand]
|
||||||
|
version = "0.3.14"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["rand", "rustc-serialize"]
|
default = ["rand", "rustc-serialize"]
|
||||||
|
|
|
@ -10,9 +10,11 @@ for package in bigint complex integer iter rational traits; do
|
||||||
cargo test --manifest-path $package/Cargo.toml
|
cargo test --manifest-path $package/Cargo.toml
|
||||||
done
|
done
|
||||||
|
|
||||||
# Only num-traits supports no_std at the moment.
|
# They all should build with minimal features too
|
||||||
cargo build --manifest-path traits/Cargo.toml --no-default-features
|
for package in bigint complex integer iter rational traits; do
|
||||||
cargo test --manifest-path traits/Cargo.toml --no-default-features
|
cargo build --manifest-path $package/Cargo.toml --no-default-features
|
||||||
|
cargo test --manifest-path $package/Cargo.toml --no-default-features
|
||||||
|
done
|
||||||
|
|
||||||
# Each isolated feature should also work everywhere.
|
# Each isolated feature should also work everywhere.
|
||||||
for feature in '' bigint rational complex; do
|
for feature in '' bigint rational complex; do
|
||||||
|
|
|
@ -668,6 +668,7 @@ impl RatioErrorKind {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "num-bigint")]
|
||||||
impl FromPrimitive for Ratio<BigInt> {
|
impl FromPrimitive for Ratio<BigInt> {
|
||||||
fn from_i64(n: i64) -> Option<Self> {
|
fn from_i64(n: i64) -> Option<Self> {
|
||||||
Some(Ratio::from_integer(n.into()))
|
Some(Ratio::from_integer(n.into()))
|
||||||
|
@ -859,7 +860,7 @@ mod test {
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::i32;
|
use std::i32;
|
||||||
use std::f64;
|
use std::f64;
|
||||||
use traits::{Zero, One, Signed, FromPrimitive, Float};
|
use traits::{Zero, One, Signed, FromPrimitive};
|
||||||
|
|
||||||
pub const _0: Rational = Ratio {
|
pub const _0: Rational = Ratio {
|
||||||
numer: 0,
|
numer: 0,
|
||||||
|
@ -1301,6 +1302,7 @@ mod test {
|
||||||
#[cfg(feature = "num-bigint")]
|
#[cfg(feature = "num-bigint")]
|
||||||
#[test]
|
#[test]
|
||||||
fn test_from_float() {
|
fn test_from_float() {
|
||||||
|
use traits::Float;
|
||||||
fn test<T: Float>(given: T, (numer, denom): (&str, &str)) {
|
fn test<T: Float>(given: T, (numer, denom): (&str, &str)) {
|
||||||
let ratio: BigRational = Ratio::from_float(given).unwrap();
|
let ratio: BigRational = Ratio::from_float(given).unwrap();
|
||||||
assert_eq!(ratio,
|
assert_eq!(ratio,
|
||||||
|
|
Loading…
Reference in New Issue