using AcDream.App.Rendering.Wb; using System.Numerics; namespace AcDream.App.Tests.Rendering.Wb; public sealed class PackedDispatcherOracleTests { [Theory] [InlineData(false, 0u)] [InlineData(true, 1u)] public void PackedInstanceWriter_AppendsDetailCategoryInParallel( bool buildingDetail, uint expectedCategory) { var group = new WbDrawDispatcher.InstanceGroup(); WbDrawDispatcher.AppendPackedInstance( group, Matrix4x4.Identity, Vector3.One, submissionOrder: 7, slot: 3u, lights: WbDrawDispatcher.InstanceLightSet.Disabled, indoor: true, buildingDetail: buildingDetail, opacity: 0.5f, selectionLighting: new Vector2(0.25f, 0.75f)); Assert.Single(group.Matrices); Assert.Single(group.LocalSortCenters); Assert.Single(group.SubmissionOrders); Assert.Single(group.Slots); Assert.Single(group.LightSets); Assert.Single(group.IndoorFlags); Assert.Equal(expectedCategory, Assert.Single(group.DetailCategories)); Assert.Single(group.Opacities); Assert.Single(group.SelectionLighting); } [Theory] [InlineData(0u, false, false)] [InlineData(0u, true, false)] [InlineData(7u, false, false)] [InlineData(7u, true, true)] public void TransparentDeferral_MatchesProductionNoVaoEarlyReturn( uint anyVao, bool alphaQueueCollecting, bool expected) { Assert.Equal( expected, WbDrawDispatcher.ShouldDeferPackedTransparent( anyVao, alphaQueueCollecting)); } }