Spracherkennung für: .rs vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v.
2.
0. If a copy of the MPL was not distributed with this
* file, You can obtain one at
https://mozilla.org/MPL/2.
0/. */
use app_units::Au;
use style::attr::{parse_length, AttrValue, LengthPercentageOrAuto};
use style::values::computed::{CalcLengthPercentage, Percentage};
#[test]
fn test_length_calc() {
let calc = CalcLengthPercentage::new(Au(
10).into(), Some(Percentage(
0.
2)));
assert_eq!(calc.to_used_value(Some(Au(
10))), Some(Au(
12)));
assert_eq!(calc.to_used_value(Some(Au(
0))), Some(Au(
10)));
assert_eq!(calc.to_used_value(None), None);
let calc = CalcLengthPercentage::new(Au(
10).into(), None);
assert_eq!(calc.to_used_value(Some(Au(
0))), Some(Au(
10)));
assert_eq!(calc.to_used_value(None), Some(Au(
10)));
}
#[test]
fn test_parse_double() {
let value = String::from("
432.
5e2");
match AttrValue::from_double(value,
0.
0) {
AttrValue::Double(_, num) => assert_eq!(num,
43250f64),
_ => panic!("expected a double value"),
}
}
#[test]
fn test_parse_double_negative_prefix() {
let value = String::from("-
5.
6");
match AttrValue::from_double(value,
0.
0) {
AttrValue::Double(_, num) => assert_eq!(num, -
5.
6f64),
_ => panic!("expected a double value"),
}
}
#[test]
fn test_parse_double_positive_prefix() {
let value = String::from("+
5.
6");
match AttrValue::from_double(value,
0.
0) {
AttrValue::Double(_, num) => assert_eq!(num,
5.
6f64),
_ => panic!("expected a double value"),
}
}
#[test]
fn test_from_limited_i32_should_be_default_when_less_than_0() {
let value = String::from("-
1");
match AttrValue::from_limited_i32(value,
0) {
AttrValue::Int(_,
0) => (),
_ => panic!("expected an IndexSize error"),
}
}
#[test]
fn test_from_limited_i32_should_parse_a_uint_when_value_is_0_or_greater() {
match AttrValue::from_limited_i32(String::from("
1"),
0) {
AttrValue::Int(_,
1) => (),
_ => panic!("expected an successful parsing"),
}
}
#[test]
fn test_from_limited_i32_should_keep_parsed_value_when_not_an_int() {
match AttrValue::from_limited_i32(String::from("parsed-value"),
0) {
AttrValue::Int(p,
0) => {
assert_eq!(p, String::from("parsed-value"))
},
_ => panic!("expected an successful parsing"),
}
}
#[test]
pub fn test_parse_length() {
fn check(input: &str, expected: LengthPercentageOrAuto) {
let parsed = parse_length(input);
assert_eq!(parsed, expected);
}
check("
0", LengthPercentageOrAuto::Length(Au::from_px(
0)));
check("
0.
000%", LengthPercentageOrAuto::Percentage(
0.
0));
check("+
5.
82%", LengthPercentageOrAuto::Percentage(
0.
0582));
check(
"
5.
82",
LengthPercentageOrAuto::Length(Au::from_f64_px(
5.
82)),
);
check("invalid", LengthPercentageOrAuto::Auto);
check(
"
12 followed by invalid",
LengthPercentageOrAuto::Length(Au::from_px(
12)),
);
}