LNXSDK/lib/aura/Tests/Utils.hx

49 lines
1.2 KiB
Haxe
Raw Normal View History

2025-01-22 16:18:30 +01:00
package;
import haxe.PosInfos;
import utest.Assert;
import kha.arrays.Float32Array;
import aura.Aura;
import aura.channels.UncompBufferChannel;
inline function createDummyHandle(): BaseChannelHandle {
final data = new kha.arrays.Float32Array(8);
final channel = new UncompBufferChannel(data, false);
return new BaseChannelHandle(channel);
}
inline function int32ToBytesString(i: Int): String {
var str = "";
for (j in 0...32) {
final mask = 1 << (31 - j);
str += (i & mask) == 0 ? "0" : "1";
}
return str;
}
inline function assertRaisesAssertion(func: Void->Void) {
#if (AURA_ASSERT_LEVEL!="NoAssertions")
Assert.raises(func, aura.utils.Assert.AuraAssertionException);
#else
Assert.pass();
#end
}
function assertEqualsFloat32Array(expected: Float32Array, have: Float32Array, ?pos: PosInfos) {
if (expected.length != have.length) {
Assert.fail('Expected Float32Array of length ${expected.length}, but got length ${have.length}', pos);
return;
}
for (i in 0...expected.length) {
if (!@:privateAccess Assert._floatEquals(expected[i], have[i])) {
Assert.fail('Expected value at index $i to be ${expected[i]}, but got ${have[i]} (only first difference reported)', pos);
return;
}
}
Assert.pass(null, pos);
}