37 lines
1022 B
C#
37 lines
1022 B
C#
using NUnit.Framework;
|
|
using Rukhanka.Toolbox;
|
|
using Unity.Collections;
|
|
using UnityEngine;
|
|
using Random = Unity.Mathematics.Random;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
namespace Rukhanka.Tests
|
|
{
|
|
public class BitFieldNTest
|
|
{
|
|
[Test]
|
|
public unsafe void FunctionalityTest()
|
|
{
|
|
var rng = new Random((uint)(Time.time * 1000));
|
|
var maxBitfieldSize = rng.NextInt(300, 1000);
|
|
var bitFieldMem = stackalloc uint[maxBitfieldSize];
|
|
|
|
var numTests = rng.NextUInt(100);
|
|
for (var i = 0; i < numTests; ++i)
|
|
{
|
|
var sz = rng.NextInt(1, maxBitfieldSize);
|
|
var bf = new BitFieldN(bitFieldMem, sz);
|
|
|
|
var i0 = rng.NextInt(0, bf.Length);
|
|
bf.Set(i0, true);
|
|
Assert.IsTrue(bf.IsSet(i0));
|
|
Assert.IsTrue(bf.TestAny());
|
|
bf.Set(i0, false);
|
|
Assert.IsFalse(bf.IsSet(i0));
|
|
Assert.IsFalse(bf.TestAny());
|
|
}
|
|
}
|
|
}
|
|
}
|