using XFEEDToolBox.Core.Galaxy;
using XFEExtension.NetCore.XUnit.Attributes;
namespace XFEEDToolBox.Test;
[TestFixture]
public sealed class GalaxyOriginalGridTests
{
[Test] public void ActualOrbitDistanceSelectsTheOriginalStrictThresholds()
{
foreach(var (distance,step) in new[]{(6d,1d),(60,1),(60.001,10),(600,10),(600.001,100),(6000,100),(6000.001,1000),(25000,1000)})
Check.Equal(step,GalaxyOriginalGrid.Step(distance));
}
[Test] public void GridRetainsActualHeightNearestSnappingAndBothCompleteAxes()
{
Span<GalaxyOriginalGridLine> lines=stackalloc GalaxyOriginalGridLine[198];
Check.Equal(198,GalaxyOriginalGrid.Write(lines,new(-5,7.25,5),100));
var first=lines[0];var middle=lines[49];var secondAxis=lines[99];
Check.Equal(-490d,first.FromX);Check.Equal(7.25,first.FromY);Check.Equal(-490d,first.FromZ);Check.Equal(510d,first.ToZ);
Check.Equal(0d,middle.FromX);Check.Equal(10f,middle.WidthMultiplier);
Check.Equal(-500d,secondAxis.FromX);Check.Equal(500d,secondAxis.ToX);Check.Equal(-480d,secondAxis.FromZ);
Check.That(lines.ToArray().All(l=>l.FromY==7.25&&l.ToY==7.25));
Check.Equal(0,GalaxyOriginalGrid.Write(lines[..197],new(0,0,0),100));
}
[Test] public void ProjectionUsesTheSameBoundedCameraAsStars()
{
Span<MapSegment> lines=stackalloc MapSegment[198];
var camera=GalaxyCamera.Create(new(51,14,-95),1878,1142,.3,.6,4);
var count=GalaxyMapGeometry.WriteOriginalGrid(lines,camera,out var step);
Check.Equal(10d,step);Check.That(count>0&&count<=198);
Check.That(lines[..count].ToArray().All(l=>l.X1>=-1e-6&&l.X1<=camera.Width+1e-6&&l.X2>=-1e-6&&l.X2<=camera.Width+1e-6&&l.Y1>=-1e-6&&l.Y1<=camera.Height+1e-6&&l.Y2>=-1e-6&&l.Y2<=camera.Height+1e-6));
}
}
using XFEEDToolBox.Core.Galaxy;
using XFEExtension.NetCore.XUnit.Attributes;
namespace XFEEDToolBox.Test;
[TestFixture]
public sealed class GalaxyOriginalGridTests
{
[Test] public void ActualOrbitDistanceSelectsTheOriginalStrictThresholds()
{
foreach(var (distance,step) in new[]{(6d,1d),(60,1),(60.001,10),(600,10),(600.001,100),(6000,100),(6000.001,1000),(25000,1000)})
Check.Equal(step,GalaxyOriginalGrid.Step(distance));
}
[Test] public void GridRetainsActualHeightNearestSnappingAndBothCompleteAxes()
{
Span<GalaxyOriginalGridLine> lines=stackalloc GalaxyOriginalGridLine[198];
Check.Equal(198,GalaxyOriginalGrid.Write(lines,new(-5,7.25,5),100));
var first=lines[0];var middle=lines[49];var secondAxis=lines[99];
Check.Equal(-490d,first.FromX);Check.Equal(7.25,first.FromY);Check.Equal(-490d,first.FromZ);Check.Equal(510d,first.ToZ);
Check.Equal(0d,middle.FromX);Check.Equal(10f,middle.WidthMultiplier);
Check.Equal(-500d,secondAxis.FromX);Check.Equal(500d,secondAxis.ToX);Check.Equal(-480d,secondAxis.FromZ);
Check.That(lines.ToArray().All(l=>l.FromY==7.25&&l.ToY==7.25));
Check.Equal(0,GalaxyOriginalGrid.Write(lines[..197],new(0,0,0),100));
}
[Test] public void ProjectionUsesTheSameBoundedCameraAsStars()
{
Span<MapSegment> lines=stackalloc MapSegment[198];
var camera=GalaxyCamera.Create(new(51,14,-95),1878,1142,.3,.6,4);
var count=GalaxyMapGeometry.WriteOriginalGrid(lines,camera,out var step);
Check.Equal(10d,step);Check.That(count>0&&count<=198);
Check.That(lines[..count].ToArray().All(l=>l.X1>=-1e-6&&l.X1<=camera.Width+1e-6&&l.X2>=-1e-6&&l.X2<=camera.Width+1e-6&&l.Y1>=-1e-6&&l.Y1<=camera.Height+1e-6&&l.Y2>=-1e-6&&l.Y2<=camera.Height+1e-6));
}
}