| ... | @@ -4072,3 +4072,20 @@ test "ctz" { | ... | @@ -4072,3 +4072,20 @@ test "ctz" { |
| 4072 | try testing.expectEqual(0, limb_max_squared.ctz(@bitSizeOf(Limb) * 2)); | 4072 | try testing.expectEqual(0, limb_max_squared.ctz(@bitSizeOf(Limb) * 2)); |
| 4073 | try testing.expectEqual(0, limb_max_squared.ctz(@bitSizeOf(Limb) * 2 + 1)); | 4073 | try testing.expectEqual(0, limb_max_squared.ctz(@bitSizeOf(Limb) * 2 + 1)); |
| 4074 | } | 4074 | } |
| | 4075 | |
| | 4076 | test "log2" { |
| | 4077 | var a = try Managed.init(testing.allocator); |
| | 4078 | defer a.deinit(); |
| | 4079 | |
| | 4080 | try a.setString(2, "1"); |
| | 4081 | try testing.expectEqual(0, a.toConst().log2()); |
| | 4082 | |
| | 4083 | try a.setString(2, "1111011"); |
| | 4084 | try testing.expectEqual(6, a.toConst().log2()); |
| | 4085 | |
| | 4086 | try a.setString(2, "10100111011101010"); |
| | 4087 | try testing.expectEqual(16, a.toConst().log2()); |
| | 4088 | |
| | 4089 | try a.setString(16, "a22d71c87a9ce406da4f5895f9f3cc3d603192baf6c8a2b5c32649d0465bf188fe799b3618085e49d71bdaec01"); |
| | 4090 | try testing.expectEqual(359, a.toConst().log2()); |
| | 4091 | } |