public void FindNextPrimeNumberBiggerOrEqual_NumberBiggerThanOne_TheNextBiggerPrimeNumber(int number, int expectedPrimeNumber) { var stopwatch = Stopwatch.StartNew(); int primeNumber = PrimeNumberHelper.FindNextPrimeNumberBiggerOrEqual(number); stopwatch.Stop(); Assert.Equal(expectedPrimeNumber, primeNumber); }
public void FindNextPrimeNumberBiggerOrEqual_NumberSmallerThanZero_ThrowArgumentOutOfRangeException(int number) { var exceptionMessage = "Since a prime number (or a prime) is defined as a natural number " + "greater than 1, only numbers greater than 1 are accepted. (Parameter 'number')"; Action action = () => PrimeNumberHelper.FindNextPrimeNumberBiggerOrEqual(number); Exception ex = Record.Exception(action); Assert.NotNull(ex); Assert.IsType <ArgumentOutOfRangeException>(ex); Assert.Equal(exceptionMessage, ((ArgumentOutOfRangeException)ex).Message); }
public ActionResult <OperationResult> FindNextPrimeNumber([Required] decimal number) { if (number > 2147483647) { return(ValidationProblem( new ValidationProblemDetails( new Dictionary <string, string[]> { { "number", new string[] { "Only numbers between 2 and 2,147,483,647 are accepted." } } } ) )); } try { int nextPrime = PrimeNumberHelper.FindNextPrimeNumberBiggerOrEqual((int)number); return(Ok(new OperationResult( OperationNames.FindNextPrimeNumberBiggerOrEqual, new Dictionary <string, object>() { { "number", number } }, $"{nextPrime} is the next prime number."))); } catch (ArgumentOutOfRangeException argumentEx) { return(ValidationProblem( new ValidationProblemDetails( new Dictionary <string, string[]> { { "number", new string[] { argumentEx.Message } } } ) )); } catch (Exception) { return(StatusCode((int)HttpStatusCode.InternalServerError, new ProblemDetails() { Status = (int)HttpStatusCode.InternalServerError, Detail = ResponseErrors.UnknownError, Title = "unknownError" })); } }