Verificación del mapeo completo de una colección / conjunto de elementos [no ordenados] en una prueba unitaria

Estoy usando xUnit.net, AutoFixture y SemanticComparison y quiero verificar los resultados de un mapeo.

En el nivel de artículo individual, estoy bien cubierto.

Dado

Los elementos comparten una clave de identificación.Quiero hacer una comparación de los elementos de valor en ambos ladosNo me importa el pedido (y no quiero que mi declaración se rompa al reordenar)

¿Cómo verifico que todos y cada uno de los elementos de entrada se asignan a uno y solo un elemento de salida en unaDAMP todavía de manera seca ¿Utilizando tantos componentes OOTB como sea posible?

Accesorios:

class Input
{ 
   public string Name, Description;
}

class Output
{ 
   public string Name, Description, IgnoreThisField;
}

Prueba de esqueleto:

[Theory,AutoData]
void MappingWorks( Mapper sut, Input[] inputs)
{
    var outputs = sut.Map( inputs);

    // TODO assert that every input is mapped
    // TODO assert that we have have no extra outputs
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta