chiark / gitweb /
Aha, a mistake in the simplest part, of course
authorSimon Tatham <anakin@pobox.com>
Sat, 12 Apr 2025 09:21:27 +0000 (10:21 +0100)
committerSimon Tatham <anakin@pobox.com>
Sat, 12 Apr 2025 09:21:27 +0000 (10:21 +0100)
src/finitenimber.rs

index 6440d42a14fdcc22fdb8992e329b6f4dc432ebf7..84bbb4c904f3f447b9edc37a7aaa3e464ab9e769 100644 (file)
@@ -109,7 +109,7 @@ impl<'a> FiniteNimberRef<'a> {
 
         fn usize_level(w: usize) -> usize {
             let log_w: u32 = (usize::BITS - 1) - w.leading_zeros();
-            u32::BITS.saturating_sub(log_w.leading_zeros()) as usize
+            log_w as usize
         }
 
         match self {
@@ -543,6 +543,18 @@ mod tests {
             FiniteNimber::from(vec![0x55, 1, 1, 1]).to_ref().level(),
             8
         );
+        assert_eq!(
+            FiniteNimber::from(vec![0x55, 1, 1, 1, 1]).to_ref().level(),
+            9
+        );
+        assert_eq!(
+            FiniteNimber::from(vec![1, 1, 1, 1, 1, 1, 1, 1]).to_ref().level(),
+            9
+        );
+        assert_eq!(
+            FiniteNimber::from(vec![1, 1, 1, 1, 1, 1, 1, 1, 1]).to_ref().level(),
+            10
+        );
     }
 
     #[test]