snail.rs
2.3 kB · rust · 58 lines
1use mrlycore::json::parse;2use mrlydemo::snail::*;34#[test]5fn the_snail_exports_answer() {6 let cells = snail_cells(3, 100, "every").unwrap();7 assert_eq!(cells.len(), 500);8 assert_eq!(&cells[0..10], &[0, 0, 1, 0, 0, 1, 0, 1, 0, 1]);9 assert_eq!(&cells[10..20], &[1, 1, 3, 1, 1, -2, 1, 3, 1, 0]);10 assert_eq!(&cells[40..50], &[1, -5, 9, 2, 0, 10, -5, 9, 2, 0]);11 let every = parse(&snail_read(3, 100, "every").unwrap()).unwrap();12 assert_eq!(every["tiles"], 100);13 assert_eq!(every["primes"], 25);14 assert_eq!(every["grown"], 98);15 assert_eq!(every["levels"].to_string(), "[2,6,18,54,20]");16 assert_eq!(every["peak"], 4);17 assert_eq!(every["side"], 81);18 assert_eq!(every["area"], 172_100);19 assert_eq!(every["low"].to_string(), "[-602,-86]");20 assert_eq!(every["high"].to_string(), "[208,724]");21 assert_eq!(every["width"], 810);22 assert_eq!(every["height"], 810);2324 let marked = snail_cells(3, 100, "prime").unwrap();25 assert_eq!(&marked[15..25], &[-2, 1, 1, 0, 0, -3, 1, 3, 1, 1]);26 let prime = parse(&snail_read(3, 100, "prime").unwrap()).unwrap();27 assert_eq!(prime["primes"], 25);28 assert_eq!(prime["grown"], 24);29 assert_eq!(prime["levels"].to_string(), "[76,3,5,13,3]");30 assert_eq!(prime["area"], 29_668);31 assert_eq!(prime["width"], 170);32 assert_eq!(prime["height"], 250);3334 let shell = parse(&snail_read(3, 300, "prime").unwrap()).unwrap();35 assert_eq!(shell["tiles"], 300);36 assert_eq!(shell["primes"], 62);37 assert_eq!(shell["levels"].to_string(), "[239,3,5,13,31,9]");38 assert_eq!(shell["side"], 243);39 assert_eq!(shell["area"], 744_980);40 assert_eq!(shell["width"], 986);41 assert_eq!(shell["height"], 1227);4243 let full = parse(&snail_read(3, 300, "every").unwrap()).unwrap();44 assert_eq!(full["levels"].to_string(), "[2,6,18,54,162,58]");45 assert_eq!(full["area"], 4_528_604);46 assert_eq!(full["width"], 4374);47 assert_eq!(full["height"], 4131);4849 let wide = parse(&snail_read(2, 2000, "every").unwrap()).unwrap();50 assert_eq!(wide["peak"], 10);51 assert_eq!(wide["side"], 1024);5253 assert!(snail_cells(3, 100, "some").is_err());54 assert!(snail_cells(1, 100, "every").is_err());55 assert!(snail_cells(9, 100, "every").is_err());56 assert!(snail_cells(3, 0, "every").is_err());57 assert!(snail_cells(3, 2001, "every").is_err());58}