Add num_want_bytes to script/bench-rust-gif
diff --git a/script/bench-rust-gif/src/main.rs b/script/bench-rust-gif/src/main.rs
index 0c2175e..caa5d54 100644
--- a/script/bench-rust-gif/src/main.rs
+++ b/script/bench-rust-gif/src/main.rs
@@ -63,6 +63,7 @@
             &mut dst[..],
             include_bytes!("../../../test/data/pjw-thumbnail.gif"),
             i == 0, // warm_up
+            32 * 32 * 1, // want_num_bytes
             2000, // iters_unscaled
         );
 
@@ -71,6 +72,7 @@
             &mut dst[..],
             include_bytes!("../../../test/data/hippopotamus.regular.gif"),
             i == 0, // warm_up
+            36 * 28 * 1, // want_num_bytes
             1000, // iters_unscaled
         );
 
@@ -79,6 +81,7 @@
             &mut dst[..],
             include_bytes!("../../../test/data/hat.gif"),
             i == 0, // warm_up
+            90 * 112 * 4, // want_num_bytes
             100, // iters_unscaled
         );
 
@@ -87,6 +90,7 @@
             &mut dst[..],
             include_bytes!("../../../test/data/hat.gif"),
             i == 0, // warm_up
+            90 * 112 * 1, // want_num_bytes
             100, // iters_unscaled
         );
 
@@ -95,6 +99,7 @@
             &mut dst[..],
             include_bytes!("../../../test/data/bricks-gray.gif"),
             i == 0, // warm_up
+            160 * 120 * 1, // want_num_bytes
             50, // iters_unscaled
         );
 
@@ -103,6 +108,7 @@
             &mut dst[..],
             include_bytes!("../../../test/data/hibiscus.primitive.gif"),
             i == 0, // warm_up
+            312 * 442 * 1, // want_num_bytes
             15, // iters_unscaled
         );
 
@@ -111,6 +117,7 @@
             &mut dst[..],
             include_bytes!("../../../test/data/hibiscus.regular.gif"),
             i == 0, // warm_up
+            312 * 442 * 1, // want_num_bytes
             10, // iters_unscaled
         );
 
@@ -119,6 +126,7 @@
             &mut dst[..],
             include_bytes!("../../../test/data/harvesters.gif"),
             i == 0, // warm_up
+            1165 * 859, // want_num_bytes
             1, // iters_unscaled
         );
 
@@ -127,6 +135,7 @@
             &mut dst[..],
             include_bytes!("../../../test/data/gifplayer-muybridge.gif"),
             i == 0, // warm_up
+            4652198, // want_num_bytes
             1, // iters_unscaled
         );
     }
@@ -137,20 +146,25 @@
     dst: &mut [u8], // Destination buffer.
     src: &[u8], // Source data.
     warm_up: bool, // Whether this is a warm up rep.
+    want_num_bytes: u64, // Expected num_bytes per iteration.
     iters_unscaled: u64, // Base number of iterations.
 ) {
     let iters = iters_unscaled * ITERSCALE;
     let output_32_bit_color = name.ends_with("_bgra");
-    let mut num_bytes = 0u64;
+    let mut total_num_bytes = 0u64;
 
     let start = Instant::now();
     for _ in 0..iters {
-        num_bytes += decode(&mut dst[..], src, output_32_bit_color);
+        let n = decode(&mut dst[..], src, output_32_bit_color);
+        if n != want_num_bytes {
+            panic!("num_bytes: got {}, want {}", n, want_num_bytes);
+        }
+        total_num_bytes += n;
     }
     let elapsed = start.elapsed();
 
     let elapsed_nanos = (elapsed.as_secs() * 1_000_000_000) + (elapsed.subsec_nanos() as u64);
-    let kb_per_s: u64 = num_bytes * 1_000_000 / elapsed_nanos;
+    let kb_per_s: u64 = total_num_bytes * 1_000_000 / elapsed_nanos;
 
     if warm_up {
         return;
@@ -168,12 +182,12 @@
 
 // decode returns the number of bytes processed.
 fn decode(dst: &mut [u8], src: &[u8], output_32_bit_color: bool) -> u64 {
+    let mut num_bytes = 0u64;
     let mut decoder = gif::Decoder::new(src);
     if output_32_bit_color {
         decoder.set(gif::ColorOutput::RGBA);
     }
 
-    let mut num_bytes = 0u64;
     let mut reader = decoder.read_info().unwrap();
     while let Some(_) = reader.next_frame_info().unwrap() {
         num_bytes += reader.buffer_size() as u64;