Advent of Code 2018 in Rust

day1.rs 716B

1234567891011121314151617181920212223242526272829303132
  1. use std::error::Error;
  2. use std::fs::File;
  3. use std::io::{BufRead, BufReader};
  4. const INPUT: &str = "inputs/1.txt";
  5. pub fn solve() -> Result<i32, Box<Error>> {
  6. calculate_resulting_frequency(INPUT)
  7. }
  8. fn calculate_resulting_frequency(filename: &str) -> Result<i32, Box<Error>> {
  9. let mut freq: i32 = 0;
  10. let file = File::open(filename)?;
  11. for line in BufReader::new(file).lines() {
  12. let adjustment: i32 = line?.parse()?;
  13. freq += adjustment;
  14. }
  15. Ok(freq)
  16. }
  17. #[cfg(test)]
  18. mod tests {
  19. use super::*;
  20. const TEST_INPUT: &str = "inputs/1_test.txt";
  21. #[test]
  22. fn finds_resulting_frequency() {
  23. assert_eq!(calculate_resulting_frequency(TEST_INPUT).unwrap(), 3);
  24. }
  25. }