From bb5b8154ae4193a2b10bba167bfc68dac095e373 Mon Sep 17 00:00:00 2001 From: Mattrixwv Date: Thu, 1 Jul 2021 10:06:13 -0400 Subject: [PATCH] Added test for isPrime function --- Algorithms.ts | 2 +- TestAlgorithms.ts | 49 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/Algorithms.ts b/Algorithms.ts index 8353b07..0f5fe14 100644 --- a/Algorithms.ts +++ b/Algorithms.ts @@ -327,7 +327,7 @@ export function isPrime(possiblePrime: number): boolean{ else if(((possiblePrime % 2) == 0) || ((possiblePrime % 3) == 0)){ return false; } - for(let cnt: number = 5;(cnt * cnt) <= possiblePrime; cnt += 6){ + for(let cnt: number = 5;(cnt * cnt) <= possiblePrime;cnt += 6){ if(((possiblePrime % cnt) == 0) || ((possiblePrime % (cnt + 2)) == 0)){ return false; } diff --git a/TestAlgorithms.ts b/TestAlgorithms.ts index f5d093d..7ebf024 100644 --- a/TestAlgorithms.ts +++ b/TestAlgorithms.ts @@ -23,7 +23,7 @@ Copyright (C) 2021 Matthew Ellison import assert = require("assert"); import { arrayEquals, getAllFib, getAllFibBig, getFactors, getFactorsBig, getPrimes, getPrimesBig, getNumPrimes, getNumPrimesBig, - sqrtBig, getSum, getSumBig, getProd, getProdBig, getDivisors, getDivisorsBig, factorial, factorialBig, isPalindrome, toBin, toBinBig } from "./Algorithms"; + sqrtBig, getSum, getSumBig, getProd, getProdBig, getDivisors, getDivisorsBig, factorial, factorialBig, isPalindrome, toBin, toBinBig, isPrime, isPrimeBig } from "./Algorithms"; function testArrayEquals(){ @@ -148,6 +148,52 @@ function testGetNumPrimes(){ console.log("getNumPrimes passed"); } +function testIsPrime(){ + //Test 1 + let num: number = 2; + let correctAnswer: boolean = true; + let answer: boolean = isPrime(num); + assert.ok((answer == correctAnswer), "isPrime number 1 failed"); + //Test 2 + num = 97; + correctAnswer = true; + answer = isPrime(num); + assert.ok((answer == correctAnswer), "isPrime number 2 failed"); + //Test 3 + num = 1000; + correctAnswer = false; + answer = isPrime(num); + assert.ok((answer == correctAnswer), "isPrime number 3 failed"); + //Test 4 + num = 1; + correctAnswer = false; + answer = isPrime(num); + assert.ok((answer == correctAnswer), "isPrime number 4 failed"); + + //Test 5 + let bigNum: bigint = 2n; + correctAnswer = true; + answer = isPrimeBig(bigNum); + assert.ok((answer == correctAnswer), "isPrime big 1 failed"); + //Test 6 + bigNum = 97n; + correctAnswer = true; + answer = isPrimeBig(bigNum); + assert.ok((answer == correctAnswer), "isPrime big 2 failed"); + //Test 7 + bigNum = 1000n; + correctAnswer = false; + answer = isPrimeBig(bigNum); + assert.ok((answer == correctAnswer), "isPrime big 3 failed"); + //Test 8 + bigNum = 1n; + correctAnswer = false; + answer = isPrimeBig(bigNum); + assert.ok((answer == correctAnswer), "isPrime big 4 failed"); + + console.log("isPrime passed"); +} + function testGetFactors(){ //Test 1 let correctAnswer = [2, 2, 5, 5]; @@ -316,6 +362,7 @@ testSqrtBig(); testGetAllFib(); testGetPrimes(); testGetNumPrimes(); +testIsPrime(); testGetFactors(); testGetDivisors(); testGetSum();