Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 2
0
    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. */ });
        }
    }
Ejemplo n.º 3
0
    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);
        }
    }
Ejemplo n.º 4
0
 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();
 }
Ejemplo n.º 5
0
 /// <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));
 }