tests: use random initializer in a test
feat: add new terminating conditions (or, lower than, maximum cycles)
refactor: Add dimension generic to BinaryString
chore: remove unused imports
refactor: properly handle errors in local_search
tests: Add test for sphere real representation
feat: add simple plotting of local search
refactor: abstract LocalSearch stats into LocalSearchStats
refactor: Use OVector instead of SVector in library
feat: add evolutionary strategies to local search
feat: add test for local search with PatternPerturbation
tests: add test for Linear fitness function
refactor: extend local search to accept any inputs Instead of accepting only BinaryString, accept anything. Extend the operators to accept anything.
tests: move all tests to separate submodules
tests: add rosenbrock test
chore: guard test imports by #[cfg(test)]
chore: split types and functions to separate module files