Singularity/Library/PackageCache/com.unity.burst@1.8.4/Tests/Runtime/Shared/090-Vectors-Indexers.cs

95 lines
2.5 KiB
C#
Raw Permalink Normal View History

2024-05-06 14:45:45 -04:00
using Burst.Compiler.IL.Tests.Helpers;
using NUnit.Framework;
using Unity.Mathematics;
namespace Burst.Compiler.IL.Tests
{
[TestFixture]
internal partial class VectorsIndexers
{
[TestCompiler(0)]
[TestCompiler(1)]
[TestCompiler(2)]
[TestCompiler(3)]
public static float Float4_get_IndexerLocal(int i)
{
var vector = new float4(5.0f, 6.0f, 7.0f, 8.0f);
return vector[i];
}
[TestCompiler(DataRange.Standard)]
public static float Float4_get_IndexerByRef(ref float4 vector)
{
return vector[0] + vector[2];
}
[TestCompiler(0)]
[TestCompiler(1)]
[TestCompiler(2)]
[TestCompiler(3)]
public static float Float4_set_IndexerLocal(int i)
{
var vector = new float4(0.0f);
vector[i] = 2.0f * i;
return vector[0] + vector[2];
}
[TestCompiler(DataRange.Standard)]
public static float Float4_set_IndexerByRef(ref float4 vector)
{
vector[0] = 10.0f;
vector[2] = 15.0f;
return vector[0] + vector[2];
}
[TestCompiler(0)]
[TestCompiler(1)]
[TestCompiler(2)]
public static float Float3_get_IndexerLocal(int i)
{
var vector = new float3(5.0f, 6.0f, 7.0f);
return vector[i];
}
[TestCompiler(DataRange.Standard)]
public static float Float3_get_IndexerByRef(ref float3 vector)
{
return vector[0] + vector[2];
}
[TestCompiler(0)]
[TestCompiler(1)]
[TestCompiler(2)]
public static float Float3_set_IndexerLocal(int i)
{
var vector = new float3(0.0f);
vector[i] = 2.0f * i;
return vector[0] + vector[2];
}
[TestCompiler(DataRange.Standard)]
public static float Float3_set_IndexerByRef(ref float3 vector)
{
vector[0] = 10.0f;
vector[2] = 15.0f;
return vector[0] + vector[2];
}
[TestCompiler(DataRange.Standard)]
public static int Bool_set_Indexer_Indirect(ref float4 vec)
{
bool4 result = false;
for (int i = 0; i < 4; i++)
{
result[i] = CheckVector(vec[i]);
}
return Vectors.ConvertToInt(result);
}
public static bool CheckVector(float value)
{
return value < 10.0f;
}
}
}