star.rs
1.4 kB · rust · 46 lines
1use demos::star::*;23#[test]4fn the_stack_and_its_band_share_one_raster() {5 let field = star_field("23", 28, 64).unwrap();6 assert_eq!(field.len(), 4096);7 let inside: Vec<f64> = field8 .iter()9 .filter(|value| !value.is_nan())10 .map(|value| f64::from(*value))11 .collect();12 assert_eq!(inside.len(), 2746);13 assert_eq!(14 format!("{:.6}", inside.iter().sum::<f64>() / inside.len() as f64),15 "0.527208"16 );17 assert_eq!(format!("{}", field[32 * 64 + 32]), "0.5");1819 let arm = star_band("23", 28, 64, 0).unwrap();20 let tally = |grid: &demos::Grid, kind: u8| grid.types.iter().filter(|t| **t == kind).count();21 assert_eq!(22 format!("{},{},{}", tally(&arm, 0), tally(&arm, 1), tally(&arm, 2)),23 "34,2712,1350"24 );25 let wide = star_band("23", 28, 64, 4).unwrap();26 assert_eq!(27 format!(28 "{},{},{}",29 tally(&wide, 0),30 tally(&wide, 1),31 tally(&wide, 2)32 ),33 "257,2489,1350"34 );35 assert_eq!(format!("{}x{}", arm.width, arm.height), "64x64");36}3738#[test]39fn the_caps_and_the_odd_layers_are_held() {40 assert!(star_field("23", 1, 64).is_err());41 assert!(star_field("23", 200, 64).is_err());42 assert!(star_field("23", 28, 512).is_err());43 assert!(star_decay("23", 801, 0).is_err());44 assert!(star_layers("23", 8, 65).is_err());45 assert!(star_layers("512", 8, 0).is_err());46}