use backtrack::problems::{BitQueens, NQueens};
use backtrack::solvers::{IterSolveCached, IterSolveNaive};
use std::cmp::min;
#[test]
fn tiny_bit_at_least() {
assert!(BitQueens::max_n() >= 8, "you should buy a larger computer")
}
#[test]
fn equivalent_n_queens() {
for n in 0..=min(9, BitQueens::max_n()) {
let n_queens = NQueens::new(n);
let n_solver = IterSolveNaive::new(&n_queens);
let b_queens = BitQueens::new(n);
let b_solver = IterSolveCached::new(&b_queens);
let both = n_solver.into_iter().zip(b_solver.into_iter());
for (i, (n_solution, b_solution)) in both.enumerate() {
assert_eq!(n_solution, b_solution, "No match at n: {}, i: {}", n, i);
}
}
}