git.lucas.co / cce-designer
graphic design tool
git clone https://git.lucas.co/cce-designer.git

commite825355160775afdea5f5ace0ae1a54d8ff8eeb0
parent1762075526
authorLucas Galante <lsgalante12@gmail.com>
date2026-09-29 16:11
test: the bypassed page test says how many pixels differ

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

 src/main.rs | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 11d41cf..e750192 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -10671,6 +10671,11 @@ mod tests {
         // green is what tells red ink and black ink from the white sheet.
         let border = |p: &crate::page::Page| p.pixels[(400 * p.width + 20) as usize];
         let rule = |p: &crate::page::Page| p.pixels[(400 * p.width + 36 * 4) as usize];
+        // Said, not shown: a sheet that differs is half a million pixels.
+        let same = |a: &crate::page::Page, b: &crate::page::Page, what: &str| {
+            let differ = a.pixels.iter().zip(&b.pixels).filter(|(x, y)| x != y).count();
+            assert!(a.pixels.len() == b.pixels.len() && differ == 0, "{what}: {differ} of {} pixels differ", a.pixels.len());
+        };
 
         let whole = sheet(&chain(&[]), "border1").expect("the chain resolves");
         assert!(border(&whole)[0] > 0.9 && border(&whole)[1] < 0.1, "the border is red: {:?}", border(&whole));
@@ -10678,7 +10683,7 @@ mod tests {
 
         // The border bypassed: the grid's sheet, as the grid made it.
         let no_border = sheet(&chain(&["border1"]), "border1").expect("passes the grid's sheet");
-        assert_eq!(no_border.pixels, sheet(&chain(&[]), "grid1").unwrap().pixels);
+        same(&no_border, &sheet(&chain(&[]), "grid1").unwrap(), "the border bypassed");
         assert!(border(&no_border)[1] > 0.9, "no border ink: {:?}", border(&no_border));
         assert!(rule(&no_border)[1] < 0.4, "and the rules are still there");
 
@@ -10691,21 +10696,21 @@ mod tests {
 
         // Both: the sheet itself.
         let bare = sheet(&chain(&["grid1", "border1"]), "border1").expect("the sheet");
-        assert_eq!(bare.pixels, sheet(&chain(&[]), "page1").unwrap().pixels);
+        same(&bare, &sheet(&chain(&[]), "page1").unwrap(), "the grid and the border bypassed");
 
         // A bypassed sheet is no sheet, and nothing drawn on it is a page.
         assert!(sheet(&chain(&["page1"]), "page1").is_none());
         assert!(sheet(&chain(&["page1"]), "border1").is_none());
 
         // Export passes a page through, bypassed or not.
-        assert_eq!(sheet(&chain(&[]), "export1").unwrap().pixels, whole.pixels);
-        assert_eq!(sheet(&chain(&["export1"]), "export1").unwrap().pixels, whole.pixels);
+        same(&sheet(&chain(&[]), "export1").unwrap(), &whole, "through an export");
+        same(&sheet(&chain(&["export1"]), "export1").unwrap(), &whole, "through a bypassed export");
 
         // What the pane shows is the level's last shown page node, and a
         // bypassed one shows what it passes.
         let mut root = chain(&["border1"]);
         root.children.pop();
-        assert_eq!(displayed_page(&root, &root).expect("displayed").pixels, no_border.pixels);
+        same(&displayed_page(&root, &root).expect("displayed"), &no_border, "what the pane shows");
     }
 
     /// The flag is written only when it is set, so a file that never