4: Add solution for Rust track exercise "Leap".
[?]
Aaw9nJhsNmfzFih9mKyNw9mV8CgERXJkRa1kK1Kx3LQH
Aug 16, 2021, 11:51 AM
YSCR6EHO5KRT3IPHOS3YOG3LTHLX46PFHGGXUOKTYOX6AZFP4MFQCDependencies
- [2]
XN7GOFDN3: Add Rust track exercise "Leap".
Change contents
- replacement in rust/leap/tests/leap.rs at line 2
assert_eq!(leap::is_leap_year(year), expected);assert_eq!(leap::is_leap_year(year), expected); - replacement in rust/leap/tests/leap.rs at line 7
process_leapyear_case(2015, false);process_leapyear_case(2015, false); - replacement in rust/leap/tests/leap.rs at line 13
process_leapyear_case(1970, false);process_leapyear_case(1970, false); - replacement in rust/leap/tests/leap.rs at line 19
process_leapyear_case(1996, true);process_leapyear_case(1996, true); - replacement in rust/leap/tests/leap.rs at line 25
process_leapyear_case(1960, true);process_leapyear_case(1960, true); - replacement in rust/leap/tests/leap.rs at line 31
process_leapyear_case(2100, false);process_leapyear_case(2100, false); - replacement in rust/leap/tests/leap.rs at line 37
process_leapyear_case(1900, false);process_leapyear_case(1900, false); - replacement in rust/leap/tests/leap.rs at line 43
process_leapyear_case(2000, true);process_leapyear_case(2000, true); - replacement in rust/leap/tests/leap.rs at line 49
process_leapyear_case(2400, true);process_leapyear_case(2400, true); - replacement in rust/leap/tests/leap.rs at line 55
process_leapyear_case(1800, false);process_leapyear_case(1800, false); - replacement in rust/leap/tests/leap.rs at line 61
process_leapyear_case(1997, false);process_leapyear_case(1997, false); - replacement in rust/leap/tests/leap.rs at line 67
process_leapyear_case(1, false);process_leapyear_case(4, true);process_leapyear_case(100, false);process_leapyear_case(400, true);process_leapyear_case(900, false);process_leapyear_case(1, false);process_leapyear_case(4, true);process_leapyear_case(100, false);process_leapyear_case(400, true);process_leapyear_case(900, false); - replacement in rust/leap/tests/leap.rs at line 77
process_leapyear_case(1700, false);process_leapyear_case(1800, false);process_leapyear_case(1900, false);process_leapyear_case(1700, false);process_leapyear_case(1800, false);process_leapyear_case(1900, false); - replacement in rust/leap/tests/leap.rs at line 85
process_leapyear_case(1600, true);process_leapyear_case(2000, true);process_leapyear_case(2400, true);process_leapyear_case(1600, true);process_leapyear_case(2000, true);process_leapyear_case(2400, true); - replacement in rust/leap/tests/leap.rs at line 93
let incorrect_years = (1600..1700).filter(|&year| leap::is_leap_year(year) != (year % 4 == 0)).collect::<Vec<_>>();let incorrect_years = (1600..1700).filter(|&year| leap::is_leap_year(year) != (year % 4 == 0)).collect::<Vec<_>>(); - replacement in rust/leap/tests/leap.rs at line 97
if !incorrect_years.is_empty() {panic!("incorrect result for years: {:?}", incorrect_years);}if !incorrect_years.is_empty() {panic!("incorrect result for years: {:?}", incorrect_years);} - edit in rust/leap/src/lib.rs at line 1
/*Info about year lengths: https://en.wikipedia.org/wiki/Year#SummaryMean tropical year is about 365.24219: http://adsabs.harvard.edu/pdf/1999A%26A...341..318MThe reason for Gregorian Calendar rules for leap days: https://blog.plover.com/calendar/leapday.html*/ - replacement in rust/leap/src/lib.rs at line 7
unimplemented!("true if {} is a leap year", year)// Check divisibility. Panics if `b` is `0`.fn a(a: u64, b: u64) -> bool {a % b == 0}a(year, 80000) || !a(year, 3200) && a(year, 400) || !a(year, 100) && a(year, 4)