using XFEEDToolBox.Core.Galaxy; using XFEExtension.NetCore.XUnit.Attributes; namespace XFEEDToolBox.Test; [TestFixture] public sealed class GalaxyMapLodTests { [Test] public void OverflowKeepsEverySparseEdgeAndStillFillsTheEntireStellarBudget() { var lod=new GalaxyMapLod();lod.Begin(3200,1800,65_536); for(var i=0;i<100_000;i++)lod.Count(1600,900); for(var i=0;i<1000;i++){lod.Count(5,5);lod.Count(3195,1795);} lod.Count(0,0,true);lod.Seal();var kept=0;var left=0;var right=0; for(var i=0;i<100_000;i++)if(lod.Accept(1600,900))kept++; for(var i=0;i<1000;i++){if(lod.Accept(5,5)){left++;kept++;}if(lod.Accept(3195,1795)){right++;kept++;}} Check.That(lod.Accept(0,0,true));kept++; Check.Equal(65_536,kept);Check.Equal(1000,left);Check.Equal(1000,right); } [Test] public void BelowCapacityEveryMeasuredStarIsRetainedAndOverflowSamplesTheFullDepthOrder() { var lod=new GalaxyMapLod();lod.Begin(1000,800,100);for(var i=0;i<80;i++)lod.Count(i*10,400);lod.Seal(); Check.That(!lod.Active);for(var i=0;i<80;i++)Check.That(lod.Accept(i*10,400)); lod.Begin(1000,800,10);for(var i=0;i<100;i++)lod.Count(500,400);lod.Seal(); var indices=new List();for(var i=0;i<100;i++)if(lod.Accept(500,400))indices.Add(i); Check.Equal(10,indices.Count);Check.That(indices[0]>=5&&indices[^1]>=95,"Overflow must include distant layers rather than only the nearest entries."); } }