using Xunit;
namespace ZB.MOM.WW.OtOpcUa.Runtime.Tests.Drivers;
///
/// Phase 4c array intent (isArray + optional arrayLength) byte-parity between the two
/// equipment-tag producers.
///
/// v3 DARK (Batch 1): equipment-tag variable plans do not materialize — the composer and the
/// artifact both emit an EMPTY EquipmentTags set until the Batch-4 dual-namespace UNS↔Raw
/// fan-out, so there is nothing to compare. The underlying parse of isArray / arrayLength
/// from a raw TagConfig blob is characterized today by TagConfigIntentTests and
/// round-tripped through the artifact by (RawTagEntry
/// byte-preservation). Unskip when Batch 4 lights the equipment-tag plans.
///
///
public sealed class DeploymentArtifactArrayParityTests
{
/// Batch-4 pending: composer and artifact agree on array equipment-tag plans
/// (IsArray + ArrayLength). See class remarks — equipment-tag plans are dark this batch.
[Fact(Skip = DarkAddressSpaceReasons.EquipmentTagsDarkBatch4)]
public void Composer_and_artifact_agree_on_array_equipment_tags()
{
// Restored when Batch 4 materializes equipment-tag variable plans: compose a draft exercising every
// array branch (isArray:true+length, absent, isArray:true no length, non-number length) and assert
// decoded EquipmentTags == composed element-wise.
}
}