Iterators are now working far more reliably and have more extensive tests that randomize inputs and fuzz them to check they keep working.

This commit is contained in:
Zed A. Shaw 2024-12-15 19:38:16 -05:00
parent 8e470df554
commit 70cd963e5c
11 changed files with 318 additions and 84 deletions

View file

@ -12,7 +12,6 @@ namespace matrix {
size_t y = ~0;
size_t width = 0;
size_t height = 0;
int cell = 0;
each_cell(Matrix &mat);
bool next();
@ -24,13 +23,25 @@ namespace matrix {
size_t y = ~0;
size_t width = 0;
size_t height = 0;
int cell = 0;
bool row = false;
each_row(Matrix &mat);
bool next();
};
struct in_box {
size_t x = 0; // these are set in constructor
size_t y = 0; // again, no fancy ~ trick needed
size_t left = 0;
size_t top = 0;
size_t right = 0;
size_t bottom = 0;
in_box(Matrix &mat, size_t x, size_t y, size_t size);
bool next();
void dump();
};
/*
* Just a quick thing to reset a matrix to a value.
*/