diff --git a/src/main.rs b/src/main.rs index 32178e9..981e00e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -192,11 +192,12 @@ fn test_tile_from_string() { fn tile_to_string(tile: Tile) -> String { let mut animation_frames = String::new(); + let last_frame = tile.animation_frames.len() - 1; for (i, frame) in tile.animation_frames.into_iter().enumerate() { animation_frames.push_str(&image_to_string(frame)); - if i < animation_frames.len() - 1 { + if i < last_frame { animation_frames.push_str(&"\n>\n".to_string()); } } @@ -210,40 +211,40 @@ fn tile_to_string(tile: Tile) -> String { ) } -// #[test] -// fn test_tile_to_string() { -// let output = tile_to_string(Tile { -// id: "7a".to_string(), -// name: Some("chequers".to_string()), -// wall: false, -// animation_frames: vec![ -// Image { pixels: vec![ -// true,false,true,false,true,false,true,false, -// false,true,false,true,false,true,false,true, -// true,false,true,false,true,false,true,false, -// false,true,false,true,false,true,false,true, -// true,false,true,false,true,false,true,false, -// false,true,false,true,false,true,false,true, -// true,false,true,false,true,false,true,false, -// false,true,false,true,false,true,false,true, -// ]}, -// Image { pixels: vec![ -// false,true,false,true,false,true,false,true, -// true,false,true,false,true,false,true,false, -// false,true,false,true,false,true,false,true, -// true,false,true,false,true,false,true,false, -// false,true,false,true,false,true,false,true, -// true,false,true,false,true,false,true,false, -// false,true,false,true,false,true,false,true, -// true,false,true,false,true,false,true,false, -// ]}, -// ] -// }); -// -// let expected = "TIL 7a\n10101010\n01010101\n10101010\n01010101\n10101010\n01010101\n10101010\n01010101\n>\n01010101\n10101010\n01010101\n10101010\n01010101\n10101010\n01010101\n10101010\nNAME chequers".to_string(); -// -// assert_eq!(output, expected); -// } +#[test] +fn test_tile_to_string() { + let output = tile_to_string(Tile { + id: "7a".to_string(), + name: Some("chequers".to_string()), + wall: false, + animation_frames: vec![ + Image { pixels: vec![ + true,false,true,false,true,false,true,false, + false,true,false,true,false,true,false,true, + true,false,true,false,true,false,true,false, + false,true,false,true,false,true,false,true, + true,false,true,false,true,false,true,false, + false,true,false,true,false,true,false,true, + true,false,true,false,true,false,true,false, + false,true,false,true,false,true,false,true, + ]}, + Image { pixels: vec![ + false,true,false,true,false,true,false,true, + true,false,true,false,true,false,true,false, + false,true,false,true,false,true,false,true, + true,false,true,false,true,false,true,false, + false,true,false,true,false,true,false,true, + true,false,true,false,true,false,true,false, + false,true,false,true,false,true,false,true, + true,false,true,false,true,false,true,false, + ]}, + ] + }); + + let expected = "TIL 7a\n10101010\n01010101\n10101010\n01010101\n10101010\n01010101\n10101010\n01010101\n>\n01010101\n10101010\n01010101\n10101010\n01010101\n10101010\n01010101\n10101010\nNAME chequers".to_string(); + + assert_eq!(output, expected); +} // todo support Bitsy HD? // todo impl (Game::from_string etc.)