implement ToString for colour; test for palette to string
This commit is contained in:
parent
e2e2f65913
commit
1221df2634
30
src/main.rs
30
src/main.rs
|
@ -594,14 +594,17 @@ fn test_colour_from_string() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn colour_to_string(colour: Colour) -> String {
|
impl ToString for Colour {
|
||||||
format!("{},{},{}", colour.red, colour.green, colour.blue)
|
#[inline]
|
||||||
|
fn to_string(&self) -> String {
|
||||||
|
format!("{},{},{}", self.red, self.green, self.blue)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_colour_to_string() {
|
fn test_colour_to_string() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
colour_to_string(Colour { red: 22, green: 33, blue: 44 }),
|
Colour { red: 22, green: 33, blue: 44 }.to_string(),
|
||||||
"22,33,44".to_string()
|
"22,33,44".to_string()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -670,14 +673,29 @@ fn palette_to_string(palette: Palette) -> String {
|
||||||
"".to_string()
|
"".to_string()
|
||||||
};
|
};
|
||||||
|
|
||||||
let colours: Vec<String> = palette.colours.into_iter().map(|colour| {
|
let colours: Vec<String> = palette.colours.into_iter().map(|colour|
|
||||||
colour_to_string(colour)
|
colour.to_string()
|
||||||
}).collect();
|
).collect();
|
||||||
let colours = colours.join("\n");
|
let colours = colours.join("\n");
|
||||||
|
|
||||||
format!("PAL {}\n{}{}", palette.id, name, colours)
|
format!("PAL {}\n{}{}", palette.id, name, colours)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_palette_to_string() {
|
||||||
|
let output = palette_to_string(Palette {
|
||||||
|
id: "g".to_string(),
|
||||||
|
name: Some("moss".to_string()),
|
||||||
|
colours: vec![
|
||||||
|
Colour {red: 1, green: 2, blue: 3 },
|
||||||
|
Colour {red: 255, green: 254, blue: 253},
|
||||||
|
Colour {red: 126, green: 127, blue: 128},
|
||||||
|
]
|
||||||
|
});
|
||||||
|
let expected = "PAL g\nNAME moss\n1,2,3\n255,254,253\n126,127,128".to_string();
|
||||||
|
assert_eq!(output, expected);
|
||||||
|
}
|
||||||
|
|
||||||
fn position_from_string(string: String) -> Position {
|
fn position_from_string(string: String) -> Position {
|
||||||
// e.g. "2,5"
|
// e.g. "2,5"
|
||||||
let xy: Vec<&str> = string.split(',').collect();
|
let xy: Vec<&str> = string.split(',').collect();
|
||||||
|
|
Loading…
Reference in New Issue