Files
Project-M/Packages/com.rukhanka.animation/Rukhanka.Tests/BitFieldNTest.cs
T
2026-05-31 14:27:52 -07:00

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());
}
}
}
}