MathUtils.IsPow2 & MathUtils.GetPow2Shift performance improvements.

This commit is contained in:
mlemanczyk committed 2023-03-27 01:12:39 +02:00
1 parent b33904a17f
commit 1f86ef2c59
2 files changed
+62 -8

No files matched your search

+58 -5
View File
@@ -1,10 +1,5 @@
using FluentAssertions;
using Recyclable.Collections;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Recyclable.CollectionsTests
{
@@ -28,5 +23,63 @@ namespace Recyclable.CollectionsTests
_ = actualRemainder.Should().Be(expectedRemainder);
}
}
[Theory]
[InlineData(0, false)]
[InlineData(1, true)]
[InlineData(2, true)]
[InlineData(3, false)]
[InlineData(4, true)]
[InlineData(5, false)]
[InlineData(8, true)]
[InlineData(16, true)]
[InlineData(20, false)]
[InlineData(32, true)]
[InlineData(64, true)]
[InlineData(128, true)]
[InlineData(256, true)]
[InlineData(512, true)]
[InlineData(1024, true)]
[InlineData(2048, true)]
[InlineData(4096, true)]
[InlineData(8192, true)]
[InlineData(16384, true)]
[InlineData(32768, true)]
[InlineData(65536, true)]
[InlineData(131072, true)]
[InlineData(262144, true)]
[InlineData(524288, true)]
[InlineData(1048576, true)]
[InlineData(2097152, true)]
[InlineData(4194304, true)]
[InlineData(8388608, true)]
[InlineData(16777216, true)]
[InlineData(33554432, true)]
[InlineData(67108864, true)]
[InlineData(134217728, true)]
[InlineData(268435456, true)]
[InlineData(536870912, true)]
[InlineData(1073741824, true)]
[InlineData(2147483648, true)]
[InlineData(2147483649, false)]
[InlineData(4294967296, true)]
public void IsPow2(long testNumber, bool expected)
{
_ = MathUtils.IsPow2(testNumber).Should().Be(expected);
}
[Theory]
[InlineData(-2, -1)]
[InlineData(-1, -1)]
[InlineData(0, -1)]
[InlineData(1, 0)]
[InlineData(2, 1)]
[InlineData(3, -1)]
[InlineData(4, 2)]
[InlineData(8, 3)]
public void GetPow2Shift(long testNumber, int expected)
{
_ = MathUtils.GetPow2Shift(testNumber).Should().Be(expected);
}
}
}