From c42b91c45b26672286b5a09f3eca335bf3495bb1 Mon Sep 17 00:00:00 2001 From: Tyler Breisacher <244381+MatrixFrog@users.noreply.github.com> Date: Fri, 25 Apr 2025 11:45:25 -0700 Subject: [PATCH 1/2] Fix invalid board --- games/linkedin-1-partial.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/games/linkedin-1-partial.txt b/games/linkedin-1-partial.txt index 1f515d6..873059c 100644 --- a/games/linkedin-1-partial.txt +++ b/games/linkedin-1-partial.txt @@ -9,7 +9,7 @@ GGGGMMMM ...Q.... .....Q.. -Q....... +.Q...... ........ Q....... ..Q..... From 33f8fb15951aa244432bca9d6241c6828aec8e13 Mon Sep 17 00:00:00 2001 From: Tyler Breisacher Date: Fri, 25 Apr 2025 22:56:38 -0700 Subject: [PATCH 2/2] Add a test that parses and checks validity of all txt files --- tests/reads_all_text_files.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/reads_all_text_files.rs diff --git a/tests/reads_all_text_files.rs b/tests/reads_all_text_files.rs new file mode 100644 index 0000000..ae4cf8e --- /dev/null +++ b/tests/reads_all_text_files.rs @@ -0,0 +1,25 @@ +use std::{ffi::OsStr, fs}; + +use anyhow::Result; + +use qsolve::{file::QueensFile, solvestate::SolveState}; + +#[test] +fn reads_all_text_files() -> Result<()> { + for dir_entry in fs::read_dir("games/")? { + let dir_entry = dir_entry?; + let path = dir_entry.path(); + let extension = path.extension().and_then(OsStr::to_str); + if extension != Some("txt") { + continue; + } + let queens_file = QueensFile::try_from_text_file(&path)?; + let solve_state = SolveState::from(&queens_file); + assert!( + solve_state.is_valid(), + "Testing initial state validity for {:?}", + dir_entry.path() + ); + } + Ok(()) +}