static void GetBitsTest(ref UnsafeBitArray test, int pos, int numBits) { test.SetBits(pos, true, numBits); Assert.AreEqual(numBits, test.CountBits(0, test.Length)); Assert.AreEqual(0xfffffffffffffffful >> (64 - numBits), test.GetBits(pos, numBits)); test.Clear(); }
public unsafe void UnsafeBitArray_Throws() { var numBits = 256; using (var test = new UnsafeBitArray(numBits, Allocator.Persistent, NativeArrayOptions.ClearMemory)) { Assert.DoesNotThrow(() => { test.TestAll(0, numBits); }); Assert.Throws <ArgumentException>(() => { test.IsSet(-1); }); Assert.Throws <ArgumentException>(() => { test.IsSet(numBits); }); // GetBits numBits must be 1-64. Assert.Throws <ArgumentException>(() => { test.GetBits(0, 0); }); Assert.Throws <ArgumentException>(() => { test.GetBits(0, 65); }); Assert.DoesNotThrow(() => { test.GetBits(63, 2); }); Assert.Throws <ArgumentException>(() => { new UnsafeBitArray(null, 7); /* check sizeInBytes must be multiple of 8-bytes. */ }); } }
private void Start() { //module.Init(); //var replace = module.Replace("金三胖3r3r"); //Debug.Log(replace); //this.TestCollectionHelp(); var bitArray = new UnsafeBitArray(129, Allocator.Temp); bitArray.Set(0, true); bitArray.Set(1, true); bitArray.Set(5, true); Debug.Log("Length:" + bitArray.Length); for (int i = 0; i < bitArray.Length; i++) { var value = bitArray.GetBits(i); Debug.Log("index:" + i); var value2 = bitArray.TestAll(i); Debug.Log(value2); } }
static void SetBitsTest(ref UnsafeBitArray test, int pos, ulong value, int numBits) { test.SetBits(pos, value, numBits); Assert.AreEqual(value, test.GetBits(pos, numBits)); test.Clear(); }
/// <summary> /// Returns all bits in range as ulong. /// </summary> /// <param name="pos">Position in bit array.</param> /// <param name="numBits">Number of bits to get (must be 1-64).</param> /// <returns>Returns requested range of bits.</returns> public ulong GetBits(int pos, int numBits = 1) { CheckRead(); return(m_BitArray.GetBits(pos, numBits)); }