mirror of
https://github.com/SpaceManiac/SpacemanDMM.git
synced 2025-12-23 05:36:47 +00:00
Improve readability of rgb() tests
This commit is contained in:
parent
7e3731ea92
commit
2dbdeb855f
1 changed files with 35 additions and 66 deletions
|
|
@ -2,142 +2,111 @@ extern crate dreammaker as dm;
|
|||
|
||||
use dm::constants::*;
|
||||
|
||||
fn eval(code: &str) -> Result<Constant, dm::DMError> {
|
||||
dm::constants::evaluate_str(Default::default(), code.as_bytes())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn floating_point_rgb() {
|
||||
// https://github.com/SpaceManiac/SpacemanDMM/issues/81
|
||||
let code = "rgb(0.5 * 255, 0.5 * 255, 0.5 * 255)";
|
||||
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#7f7f7f".to_owned()),
|
||||
eval("rgb(0.5 * 255, 0.5 * 255, 0.5 * 255)").unwrap(),
|
||||
Constant::string("#7f7f7f"),
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rgb_base() {
|
||||
let code_good = "rgb(0, 255, 0)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_good.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#00ff00".to_owned()),
|
||||
eval("rgb(0, 255, 0)").unwrap(),
|
||||
Constant::string("#00ff00"),
|
||||
);
|
||||
let code_good2 = "rgb(50, 50, 50)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_good2.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#323232".to_owned()),
|
||||
eval("rgb(50, 50, 50)").unwrap(),
|
||||
Constant::string("#323232"),
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rgb_range() {
|
||||
let code_rgb = "rgb(0, 300, 0)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_rgb.as_bytes())
|
||||
.unwrap_err().description(),
|
||||
eval("rgb(0, 300, 0)").unwrap_err().description(),
|
||||
"malformed rgb() call, 300 is not within the valid range (0..255)",
|
||||
);
|
||||
let code_hsv = "rgb(361, 0, 0, space=1)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsv.as_bytes())
|
||||
.unwrap_err().description(),
|
||||
eval("rgb(361, 0, 0, space=1)").unwrap_err().description(),
|
||||
"malformed rgb() call, 361 is not within the valid range (0..360)",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rgb_args() {
|
||||
let code = "rgb(50)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code.as_bytes())
|
||||
.unwrap_err().description(),
|
||||
eval("rgb(50)").unwrap_err().description(),
|
||||
"malformed rgb() call, must have 3, 4, or 5 arguments and instead has 1",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rgb_alpha() {
|
||||
let code_hsv = "rgb(h=0, s=0, v=100, a=50, space=1)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsv.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#ffffff32".to_owned()),
|
||||
eval("rgb(h=0, s=0, v=100, a=50, space=1)").unwrap(),
|
||||
Constant::string("#ffffff32"),
|
||||
);
|
||||
let code_hsv2 = "rgb(h=0, s=0, v=100, 50)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsv2.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#ffffff32".to_owned()),
|
||||
eval("rgb(h=0, s=0, v=100, 50)").unwrap(),
|
||||
Constant::string("#ffffff32"),
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rgb_hsv() {
|
||||
let code_hsv = "rgb(h=0, s=0, v=100)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsv.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#ffffff".to_owned()),
|
||||
eval("rgb(h=0, s=0, v=100)").unwrap(),
|
||||
Constant::string("#ffffff"),
|
||||
);
|
||||
let code_hsv2 = "rgb(h=50, s=50, v=50)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsv2.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#807540".to_owned()),
|
||||
eval("rgb(h=50, s=50, v=50)").unwrap(),
|
||||
Constant::string("#807540"),
|
||||
);
|
||||
|
||||
let code_hsv_space = "rgb(360, 0, 0, space=1)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsv_space.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#000000".to_owned()),
|
||||
eval("rgb(360, 0, 0, space=1)").unwrap(),
|
||||
Constant::string("#000000"),
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rgb_hsl() {
|
||||
let code_hsl = "rgb(h=0, s=0, l=100)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsl.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#ffffff".to_owned()),
|
||||
eval("rgb(h=0, s=0, l=100)").unwrap(),
|
||||
Constant::string("#ffffff"),
|
||||
);
|
||||
let code_hsl2 = "rgb(h=50, s=50, l=50)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsl2.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#bfaa40".to_owned()),
|
||||
eval("rgb(h=50, s=50, l=50)").unwrap(),
|
||||
Constant::string("#bfaa40"),
|
||||
);
|
||||
|
||||
let code_hsl_space = "rgb(360, 0, 0, space=2)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsl_space.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#000000".to_owned()),
|
||||
eval("rgb(360, 0, 0, space=2)").unwrap(),
|
||||
Constant::string("#000000"),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
#[test]
|
||||
fn rgb_hcy() {
|
||||
let code_hsl = "rgb(h=0, c=0, y=100)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsl.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#ffffff".to_owned()),
|
||||
eval("rgb(h=0, c=0, y=100)").unwrap(),
|
||||
Constant::string("#ffffff"),
|
||||
);
|
||||
let code_hsl2 = "rgb(h=50, c=50, y=50)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsl2.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#b65f37".to_owned()),
|
||||
eval("rgb(h=50, c=50, y=50)").unwrap(),
|
||||
Constant::string("#b65f37"),
|
||||
);
|
||||
|
||||
let code_hsl_space = "rgb(360, 0, 0, space=3)";
|
||||
assert_eq!(
|
||||
dm::constants::evaluate_str(Default::default(), code_hsl_space.as_bytes())
|
||||
.expect("evaluation failed"),
|
||||
Constant::String("#000000".to_owned()),
|
||||
eval("rgb(360, 0, 0, space=3)").unwrap(),
|
||||
Constant::string("#000000"),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue