This repository has been archived on 2026-10-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
CultMath/tests/CultMath.Tests/MathTests.cs
2026-05-08 01:49:44 +01:00

38 lines
964 B
C#

using CultMath;
using Xunit;
namespace CultMath.Tests;
public sealed class MathTests
{
[Fact]
public void FracMatchesShaderStylePositiveAndNegativeValues()
{
Assert.Equal(0.25f, math.frac(1.25f));
Assert.Equal(0.75f, math.frac(-1.25f));
}
[Fact]
public void VectorOperationsAreComponentWise()
{
var value = new float3(1.0f, 2.0f, 3.0f) * new float3(4.0f, 5.0f, 6.0f);
Assert.Equal(new float3(4.0f, 10.0f, 18.0f), value);
}
[Fact]
public void NormalizeProducesUnitLength()
{
var value = math.normalize(new float3(3.0f, 4.0f, 0.0f));
Assert.Equal(1.0f, math.length(value), precision: 5);
}
[Fact]
public void SmoothstepUsesHermiteRamp()
{
Assert.Equal(0.0f, math.smoothstep(0.0f, 1.0f, -1.0f));
Assert.Equal(0.5f, math.smoothstep(0.0f, 1.0f, 0.5f), precision: 5);
Assert.Equal(1.0f, math.smoothstep(0.0f, 1.0f, 2.0f));
}
}