public void InterlockedAddUnique_tests_the_occurrence_of_the_item()
{
{
// Append
int[] a = null;
Util.InterlockedAddUnique( ref a, 1 );
Assert.That( a != null && a.Length == 1 && a[0] == 1 );
var theA = a;
Util.InterlockedAddUnique( ref a, 1 );
Assert.That( a, Is.SameAs( theA ) );
Util.InterlockedAddUnique( ref a, 2 );
Assert.That( a != null && a.Length == 2 && a[0] == 1 && a[1] == 2 );
theA = a;
Util.InterlockedAddUnique( ref a, 2 );
Assert.That( a, Is.SameAs( theA ) );
}
{
// Prepend
int[] a = null;
Util.InterlockedAddUnique( ref a, 1, true );
Assert.That( a != null && a.Length == 1 && a[0] == 1 );
var theA = a;
Util.InterlockedAddUnique( ref a, 1, true );
Assert.That( a, Is.SameAs( theA ) );
Util.InterlockedAddUnique( ref a, 2, true );
Assert.That( a != null && a.Length == 2 && a[0] == 2 && a[1] == 1 );
theA = a;
Util.InterlockedAddUnique( ref a, 2, true );
Assert.That( a, Is.SameAs( theA ) );
}
}