title: Mutation undetected if list is lower than 8
body: <p>Recently I started doing some C#, coming from PHP.
  My way of playing with the language and learn is to do some TDD.
  So i grabbed some RFC spec and wrote some tests (<a href="https://datatracker.ietf.org/doc/html/rfc4122" rel="nofollow noreferrer">RFC spec here</a>).</p>
  <p>I'm using NUnit right now, and Stryker to check tests quality.</p>
  <p>Here's the situation: I have an abstract Uuid class, which has a constructor taking the version, timestamp bytes, clock-sequence bytes and node bytes.
  As the RFC determines their size, I wrote some test:</p>
  <pre><code>[Test]
  public void Expects8TimestampBytes()
  {
      // given an invalid count of timestamp bytes
      var timestampBytes = new List&lt;byte&gt;
      {
          0x00,
      };
  
      // when trying to create an Uuid from it
      TestDelegate instanciation = () =&gt; ConcreteUuid.Constructor2(timestamp: timestampBytes);
  
      // then an exception should be thrown
      Assert.That(instanciation, Throws.ArgumentException);
  }
  </code></pre>
  <p><a href="https://github.com/adrien-cuisse/cs-tdd/blob/master/Domain.Tests/src/ValueObject/Identity/Uuid/Uuid.Tests.cs" rel="nofollow noreferrer">Full test class is available here</a></p>
  <p>The test is green, the exception is thrown:</p>
  <pre><code>protected Uuid(int version, List&lt;byte&gt; timestamp, List&lt;byte&gt; clockSequence, List&lt;byte&gt; node)
  {
      if (timestamp.Count != 8)
      {
          throw new ArgumentException($&quot;Timestamp bytes count must be 8, got {timestamp.Count}&quot;);
      }
      // more code ...
  }
  </code></pre>
  <p><a href="https://github.com/adrien-cuisse/cs-tdd/blob/master/Domain/src/ValueObject/Identity/Uuid/Uuid.cs" rel="nofollow noreferrer">Full class is available here</a></p>
  <p>Tests with NUnit report everyting is fine, but a mutation with Stryker survives and the condition is shown as red,
  while mutants on clockSequence.Count and node.Count are green.
  <a href="https://i.stack.imgur.com/rj6eA.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/rj6eA.png" alt="Mutation report" /></a></p>
  <p>The problem seems to come from the value 8, maybe because of allocated items (which wouldn't make sense since .Count has nothind to do with .Capacity), a TrimExcess() didn't solve the problem.
  The way to kill the mutation is to set timestampBytes as a List of 9+, lesser than 8 makes the mutation survive, and I don't understand why node and clock-sequence have their mutations killed with size lesser than 8 (tried reordering the conditions).</p>
  <p>Is that something special about the number 8 ?</p>