public void Log2SignedOfNegativeShouldReturnNeg1() { Assert.AreEqual(-1, Base2Math.Log2((sbyte)-10), "sbyte"); Assert.AreEqual(-1, Base2Math.Log2((short)-10), "short"); Assert.AreEqual(-1, Base2Math.Log2((int)-10), "int"); Assert.AreEqual(-1, Base2Math.Log2((long)-10), "long"); }
public void Log2UnsignedOf0ShouldReturnMaxValue() { Assert.AreEqual(byte.MaxValue, Base2Math.Log2((byte)0), "byte"); Assert.AreEqual(ushort.MaxValue, Base2Math.Log2((ushort)0), "ushort"); Assert.AreEqual(uint.MaxValue, Base2Math.Log2((uint)0), "uint"); Assert.AreEqual(ulong.MaxValue, Base2Math.Log2((ulong)0), "ulong"); Assert.AreEqual(UInt128.MaxValue, Base2Math.Log2((UInt128)0), "UInt128"); }
public void Log2Of10ShouldReturn3() { Assert.AreEqual(3, Base2Math.Log2((byte)10), "byte"); Assert.AreEqual(3, Base2Math.Log2((sbyte)10), "sbyte"); Assert.AreEqual(3, Base2Math.Log2((ushort)10), "ushort"); Assert.AreEqual(3, Base2Math.Log2((short)10), "short"); Assert.AreEqual(3, Base2Math.Log2((uint)10), "uint"); Assert.AreEqual(3, Base2Math.Log2((int)10), "int"); Assert.AreEqual(3, Base2Math.Log2((ulong)10), "ulong"); Assert.AreEqual(3, Base2Math.Log2((long)10), "long"); Assert.AreEqual((UInt128)3, Base2Math.Log2((UInt128)10), "UInt128"); }
public void Log2Of2ShouldReturn1() { Assert.AreEqual(1, Base2Math.Log2((byte)2), "byte"); Assert.AreEqual(1, Base2Math.Log2((sbyte)2), "sbyte"); Assert.AreEqual(1, Base2Math.Log2((ushort)2), "ushort"); Assert.AreEqual(1, Base2Math.Log2((short)2), "short"); Assert.AreEqual(1, Base2Math.Log2((uint)2), "uint"); Assert.AreEqual(1, Base2Math.Log2((int)2), "int"); Assert.AreEqual(1, Base2Math.Log2((ulong)2), "ulong"); Assert.AreEqual(1, Base2Math.Log2((long)2), "long"); Assert.AreEqual((UInt128)1, Base2Math.Log2((UInt128)2), "UInt128"); }
public void Log2Of1ShouldReturn0() { Assert.AreEqual(0, Base2Math.Log2((byte)1), "byte"); Assert.AreEqual(0, Base2Math.Log2((sbyte)1), "sbyte"); Assert.AreEqual(0, Base2Math.Log2((ushort)1), "ushort"); Assert.AreEqual(0, Base2Math.Log2((short)1), "short"); Assert.AreEqual(0, Base2Math.Log2((uint)1), "uint"); Assert.AreEqual(0, Base2Math.Log2((int)1), "int"); Assert.AreEqual(0, Base2Math.Log2((ulong)1), "ulong"); Assert.AreEqual(0, Base2Math.Log2((long)1), "long"); Assert.AreEqual(UInt128.Zero, Base2Math.Log2((UInt128)1), "UInt128"); }
public void Log2SignedByteShouldMatchWider() { sbyte v = sbyte.MinValue; while (true) { sbyte expected = Base2Math.Log2(v); Assert.AreEqual((short)expected, Base2Math.Log2((short)v), "short"); Assert.AreEqual((int)expected, Base2Math.Log2((int)v), "int"); Assert.AreEqual((long)expected, Base2Math.Log2((long)v), "long"); if (v == sbyte.MaxValue) { break; } v++; } }
public void Log2UnsignedByteShouldMatchWider() { byte v = 1; while (true) { byte expected = Base2Math.Log2(v); Assert.AreEqual((ushort)expected, Base2Math.Log2((ushort)v), "ushort=>" + v); Assert.AreEqual((short)expected, Base2Math.Log2((short)v), "short=>" + v); Assert.AreEqual((uint)expected, Base2Math.Log2((uint)v), "uint=>" + v); Assert.AreEqual((int)expected, Base2Math.Log2((int)v), "int=>" + v); Assert.AreEqual((ulong)expected, Base2Math.Log2((ulong)v), "ulong=>" + v); Assert.AreEqual((long)expected, Base2Math.Log2((long)v), "long=>" + v); Assert.AreEqual((UInt128)expected, Base2Math.Log2((UInt128)v), "UInt128=>" + v); if (v == byte.MaxValue) { break; } v++; } }