From d0f257465127a1c29ca310b844a4d0245ecafa41 Mon Sep 17 00:00:00 2001 From: Sean Date: Fri, 21 Jun 2024 15:43:45 +0900 Subject: [PATCH] test: `SignificantBit` --- src/libraries/significant_bit.cairo | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/libraries/significant_bit.cairo b/src/libraries/significant_bit.cairo index 5dcd277..ab30212 100644 --- a/src/libraries/significant_bit.cairo +++ b/src/libraries/significant_bit.cairo @@ -268,8 +268,24 @@ pub impl SignificantBitImpl of SignificantBitTrait { let index = (x & (~x + 1)) * DEBRUIJN_SEQ / 0x100000000000000000000000000000000000000000000000000000000000000; - return 1; - // let arr = DEBRUIJN_INDEX.span(); - // arr[index] + *DEBRUIJN_INDEX.span()[index.try_into().unwrap()] + } +} + +#[cfg(test)] +mod tests { + use super::SignificantBitImpl; + use clober_cairo::alexandria::fast_power::fast_power; + + #[test] + fn test_least_significant_bit() { + let mut i: u256 = 0; + while i < 256 { + assert_eq!( + SignificantBitImpl::least_significant_bit(fast_power(2_u256, i)), + i.try_into().unwrap() + ); + i += 1; + } } }