public void RRandomElement__SourceHasMoreThanOneElement_And_AllElementsSatisfyPredicate__ReturnsAnElementFromTheSource()
 {
     var source = new[] { 1, 2, 3 };
     // ReSharper disable PossibleInvalidOperationException
     CollectionAssert.Contains(source, source.RandomElement(o => true).Value);
     // ReSharper restore PossibleInvalidOperationException
 }
 public void RandomElement__SourceHasOneElement_And_ElementSatisfiesPredicate__ReturnsThatElement()
 {
     var source = new[] { 1 };
     // ReSharper disable PossibleInvalidOperationException
     Assert.That(source.RandomElement(o => true).Value, Is.EqualTo(source[0]));
     // ReSharper restore PossibleInvalidOperationException
 }
 public void RandomElement__SourceHasMoreThanOneElement_And_SomeElementsSatisfyPredicate__ReturnsAnElementFromTheSourceThatSatisfyPredicate()
 {
     var source = new[] { 1, 2, 3 };
     var elementsThatSatisfyPredicate = new[] { source[0], source[2] };
     // ReSharper disable PossibleInvalidOperationException
     CollectionAssert.Contains(elementsThatSatisfyPredicate, source.RandomElement(elementsThatSatisfyPredicate.Contains).Value);
     // ReSharper restore PossibleInvalidOperationException
 }
 public void RandomElement__SourceHasOneElement_And_ElementDoesNotSatisfyPredicate__ReturnsNone()
 {
     var source = new[] { 1 };
     Assert.That(source.RandomElement(o => false).HasValue, Is.False);
 }
 public void RandomElement__SourceHasMoreThanOneElement_And_AllElementsDoNotSatisfyPredicate__ReturnsNone()
 {
     var source = new[] { 1, 2, 3 };
     Assert.That(source.RandomElement(o => false).HasValue, Is.False);
 }